Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / IDataContractSurrogate.cs / 1305376 / IDataContractSurrogate.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Runtime.Serialization { using System; using System.CodeDom; using System.Reflection; using System.Collections.ObjectModel; public interface IDataContractSurrogate { Type GetDataContractType(Type type); object GetObjectToSerialize(object obj, Type targetType); object GetDeserializedObject(object obj, Type targetType); object GetCustomDataToExport(MemberInfo memberInfo, Type dataContractType); object GetCustomDataToExport(Type clrType, Type dataContractType); void GetKnownCustomDataTypes(CollectioncustomDataTypes); Type GetReferencedTypeOnImport(string typeName, string typeNamespace, object customData); CodeTypeDeclaration ProcessImportedType(CodeTypeDeclaration typeDeclaration, CodeCompileUnit compileUnit); } static class DataContractSurrogateCaller { internal static Type GetDataContractType(IDataContractSurrogate surrogate, Type type) { if (DataContract.GetBuiltInDataContract(type)!= null) return type; Type dcType = surrogate.GetDataContractType(type); if(dcType == null) return type; return dcType; } internal static object GetObjectToSerialize(IDataContractSurrogate surrogate, object obj, Type objType, Type membertype) { if(obj == null) return null; if (DataContract.GetBuiltInDataContract(objType)!= null) return obj; return surrogate.GetObjectToSerialize(obj, membertype); } internal static object GetDeserializedObject(IDataContractSurrogate surrogate, object obj, Type objType, Type memberType) { if(obj == null) return null; if (DataContract.GetBuiltInDataContract(objType)!= null) return obj; return surrogate.GetDeserializedObject(obj, memberType); } internal static object GetCustomDataToExport(IDataContractSurrogate surrogate, MemberInfo memberInfo, Type dataContractType) { return surrogate.GetCustomDataToExport(memberInfo, dataContractType); } internal static object GetCustomDataToExport(IDataContractSurrogate surrogate, Type clrType, Type dataContractType) { if (DataContract.GetBuiltInDataContract(clrType)!= null) return null; return surrogate.GetCustomDataToExport(clrType, dataContractType); } internal static void GetKnownCustomDataTypes(IDataContractSurrogate surrogate, Collection customDataTypes) { surrogate.GetKnownCustomDataTypes(customDataTypes); } internal static Type GetReferencedTypeOnImport(IDataContractSurrogate surrogate, string typeName, string typeNamespace, object customData) { if(DataContract.GetBuiltInDataContract(typeName, typeNamespace) != null) return null; return surrogate.GetReferencedTypeOnImport(typeName, typeNamespace, customData); } internal static CodeTypeDeclaration ProcessImportedType(IDataContractSurrogate surrogate, CodeTypeDeclaration typeDeclaration, CodeCompileUnit compileUnit) { return surrogate.ProcessImportedType(typeDeclaration, compileUnit); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompilationRelaxations.cs
- XmlAttributes.cs
- CannotUnloadAppDomainException.cs
- CollectionChangeEventArgs.cs
- Deflater.cs
- SchemaType.cs
- BeginEvent.cs
- XPathNodeInfoAtom.cs
- TransferMode.cs
- FilteredDataSetHelper.cs
- login.cs
- RoutedPropertyChangedEventArgs.cs
- DataQuery.cs
- FacetEnabledSchemaElement.cs
- EmptyImpersonationContext.cs
- WebHttpBindingCollectionElement.cs
- DetailsViewInsertEventArgs.cs
- KeyPressEvent.cs
- UrlPath.cs
- MSAANativeProvider.cs
- PathFigureCollection.cs
- JsonDeserializer.cs
- XmlElementAttribute.cs
- _SSPISessionCache.cs
- ContextMenu.cs
- FieldAccessException.cs
- CategoryValueConverter.cs
- RelationshipDetailsCollection.cs
- Composition.cs
- _SslStream.cs
- InvalidDataException.cs
- Hash.cs
- UnauthorizedAccessException.cs
- MdiWindowListStrip.cs
- Attributes.cs
- EntityChangedParams.cs
- AssemblyCollection.cs
- Int64.cs
- AsyncContentLoadedEventArgs.cs
- Triplet.cs
- GACIdentityPermission.cs
- XsltSettings.cs
- Asn1IntegerConverter.cs
- TabControlAutomationPeer.cs
- EdmPropertyAttribute.cs
- ListBindableAttribute.cs
- TransactionTraceIdentifier.cs
- HttpChannelListener.cs
- BinaryNode.cs
- NodeLabelEditEvent.cs
- ControlBuilderAttribute.cs
- SelectionProcessor.cs
- FileInfo.cs
- XPathDocument.cs
- RegistrationServices.cs
- SQLByteStorage.cs
- Cursor.cs
- ComponentManagerBroker.cs
- XmlSchemaComplexContentRestriction.cs
- PersonalizationDictionary.cs
- TextLine.cs
- TracePayload.cs
- LocalizableAttribute.cs
- NavigatorOutput.cs
- MergablePropertyAttribute.cs
- BStrWrapper.cs
- CfgSemanticTag.cs
- SystemParameters.cs
- CheckPair.cs
- CompModSwitches.cs
- TrackingMemoryStreamFactory.cs
- CodeParameterDeclarationExpression.cs
- _NestedSingleAsyncResult.cs
- RequestSecurityTokenSerializer.cs
- IFormattable.cs
- PeerNameResolver.cs
- MaterializeFromAtom.cs
- DivideByZeroException.cs
- EncodingDataItem.cs
- CriticalFinalizerObject.cs
- ValidationRuleCollection.cs
- DesignerRegion.cs
- MsmqTransportReceiveParameters.cs
- FontFamilyIdentifier.cs
- ListViewSelectEventArgs.cs
- NavigationPropertyEmitter.cs
- TextEditorThreadLocalStore.cs
- _HelperAsyncResults.cs
- Propagator.cs
- RawStylusInputCustomDataList.cs
- AppDomainCompilerProxy.cs
- TheQuery.cs
- SqlProfileProvider.cs
- QuaternionRotation3D.cs
- DataSvcMapFileSerializer.cs
- RawStylusInputReport.cs
- XamlSerializerUtil.cs
- DataRelationCollection.cs
- CheckedListBox.cs
- GeneratedContractType.cs