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
- WrapperEqualityComparer.cs
- AnnotationResourceChangedEventArgs.cs
- ScrollChangedEventArgs.cs
- SecurityDocument.cs
- OneToOneMappingSerializer.cs
- LicFileLicenseProvider.cs
- TextDecorationLocationValidation.cs
- DecimalStorage.cs
- SmtpDigestAuthenticationModule.cs
- LayoutTableCell.cs
- Attributes.cs
- CustomAssemblyResolver.cs
- SapiRecoContext.cs
- CommandSet.cs
- ElementNotEnabledException.cs
- LinkLabelLinkClickedEvent.cs
- RectIndependentAnimationStorage.cs
- DesignerView.xaml.cs
- PagesSection.cs
- PostBackTrigger.cs
- LineSegment.cs
- UnsafeMethods.cs
- RenderOptions.cs
- GifBitmapDecoder.cs
- UriParserTemplates.cs
- _TimerThread.cs
- ProcessingInstructionAction.cs
- ResourceManager.cs
- QuaternionValueSerializer.cs
- TextSchema.cs
- MenuItemStyleCollection.cs
- coordinator.cs
- ScriptingSectionGroup.cs
- TagMapInfo.cs
- ReflectionPermission.cs
- ListenDesigner.cs
- _PooledStream.cs
- SchemaImporterExtensionElement.cs
- ControlPropertyNameConverter.cs
- ImageSource.cs
- RowCache.cs
- RSACryptoServiceProvider.cs
- QilXmlWriter.cs
- TraceShell.cs
- EffectiveValueEntry.cs
- Vector3DAnimationBase.cs
- CollectionEditVerbManager.cs
- XmlSchemaAnnotated.cs
- GridViewColumnHeaderAutomationPeer.cs
- SqlDataSourceQueryEditorForm.cs
- DataListGeneralPage.cs
- AutomationPropertyInfo.cs
- AffineTransform3D.cs
- RegexWriter.cs
- NativeRecognizer.cs
- ImageMap.cs
- Utility.cs
- DynamicMetaObject.cs
- XmlNodeList.cs
- OdbcErrorCollection.cs
- ProcessModuleCollection.cs
- WebColorConverter.cs
- XsdDataContractImporter.cs
- Nodes.cs
- SmtpMail.cs
- IDReferencePropertyAttribute.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- TableCell.cs
- RequestCachePolicyConverter.cs
- HttpResponse.cs
- StoreConnection.cs
- DispatcherObject.cs
- SafeIUnknown.cs
- CreateUserWizardAutoFormat.cs
- TextUtf8RawTextWriter.cs
- PersonalizablePropertyEntry.cs
- PagePropertiesChangingEventArgs.cs
- CombinedGeometry.cs
- exports.cs
- MaskInputRejectedEventArgs.cs
- MetadataItemEmitter.cs
- BooleanConverter.cs
- EditorPartChrome.cs
- OleTxTransaction.cs
- DBSchemaRow.cs
- Rotation3DAnimationUsingKeyFrames.cs
- BoundPropertyEntry.cs
- PeerTransportCredentialType.cs
- DataGridTextBoxColumn.cs
- XsltCompileContext.cs
- InstanceValue.cs
- LocationSectionRecord.cs
- Parameter.cs
- DashStyles.cs
- StrongNameMembershipCondition.cs
- Expander.cs
- UncommonField.cs
- WorkflowServiceNamespace.cs
- Application.cs
- WebResourceUtil.cs