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
- MessageQueueAccessControlEntry.cs
- GeneralTransform2DTo3DTo2D.cs
- DbProviderFactories.cs
- InputElement.cs
- ExpressionWriter.cs
- TypeToken.cs
- DataGridState.cs
- SelectionService.cs
- SmtpException.cs
- InkCanvasSelectionAdorner.cs
- GlyphElement.cs
- SiblingIterators.cs
- SpeechDetectedEventArgs.cs
- CriticalHandle.cs
- FaultHandlingFilter.cs
- SQLInt16.cs
- ConfigurationStrings.cs
- RequestCachePolicyConverter.cs
- SqlBinder.cs
- SecurityDocument.cs
- AnimatedTypeHelpers.cs
- DataSourceControl.cs
- HttpModulesSection.cs
- NTAccount.cs
- XmlQueryContext.cs
- PnrpPeerResolver.cs
- Hashtable.cs
- Visitor.cs
- WindowsFormsHelpers.cs
- DecoderFallback.cs
- PhoneCallDesigner.cs
- ControlDesigner.cs
- PropertyRecord.cs
- CaseInsensitiveHashCodeProvider.cs
- PathFigureCollection.cs
- ImageMetadata.cs
- LinkUtilities.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- XmlSchemaObject.cs
- DerivedKeySecurityToken.cs
- ShowExpandedMultiValueConverter.cs
- HttpCachePolicy.cs
- ConfigXmlCDataSection.cs
- ApplicationId.cs
- MachineKeySection.cs
- followingquery.cs
- XmlSchemaSet.cs
- ListMarkerLine.cs
- InkPresenter.cs
- Brush.cs
- MetadataFile.cs
- EdmProperty.cs
- Point3DKeyFrameCollection.cs
- WebBrowserSiteBase.cs
- XDRSchema.cs
- BufferedGraphicsContext.cs
- QuaternionConverter.cs
- PackageRelationship.cs
- ControlValuePropertyAttribute.cs
- ReachPageContentCollectionSerializer.cs
- httpapplicationstate.cs
- DisplayInformation.cs
- RoutedEventHandlerInfo.cs
- CardSpaceException.cs
- MergablePropertyAttribute.cs
- Logging.cs
- FolderBrowserDialog.cs
- DrawingGroupDrawingContext.cs
- SecurityContextSecurityTokenResolver.cs
- ReadOnlyCollectionBase.cs
- EntityDataSourceContextCreatingEventArgs.cs
- SafeNativeMethods.cs
- UIElementHelper.cs
- ExeConfigurationFileMap.cs
- BlurBitmapEffect.cs
- AccessDataSourceView.cs
- PrintEvent.cs
- ExpressionEditorAttribute.cs
- FolderBrowserDialog.cs
- UriTemplateMatch.cs
- WebPartCatalogAddVerb.cs
- ValidationHelper.cs
- XmlMembersMapping.cs
- ApplicationManager.cs
- SetterBase.cs
- TableLayoutSettingsTypeConverter.cs
- URL.cs
- SyntaxCheck.cs
- TraceInternal.cs
- DesignSurfaceManager.cs
- x509store.cs
- InvalidOperationException.cs
- HotSpotCollection.cs
- SessionState.cs
- TemplateKey.cs
- DebuggerAttributes.cs
- CodeAccessPermission.cs
- SessionEndingEventArgs.cs
- OracleConnectionFactory.cs
- ObjectPersistData.cs