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
- XmlExpressionDumper.cs
- SpellerHighlightLayer.cs
- ActiveDocumentEvent.cs
- DrawingCollection.cs
- URI.cs
- IntranetCredentialPolicy.cs
- Deflater.cs
- SectionUpdates.cs
- TraceContextRecord.cs
- ProviderIncompatibleException.cs
- HttpChannelHelper.cs
- BamlRecordHelper.cs
- WebConvert.cs
- MemberRelationshipService.cs
- DesignSurfaceManager.cs
- DeleteStoreRequest.cs
- MenuItemStyleCollection.cs
- SQLGuid.cs
- BufferModesCollection.cs
- documentsequencetextview.cs
- ListSourceHelper.cs
- TypeContext.cs
- TableAutomationPeer.cs
- TemplateXamlParser.cs
- XmlDataImplementation.cs
- HttpConfigurationContext.cs
- ContextQuery.cs
- CryptoKeySecurity.cs
- WsatServiceCertificate.cs
- QueryOutputWriter.cs
- EntityDataSourceContainerNameItem.cs
- ImageListUtils.cs
- InfoCardSymmetricAlgorithm.cs
- DispatcherEventArgs.cs
- NumberFormatter.cs
- NetNamedPipeSecurityMode.cs
- CodeParameterDeclarationExpressionCollection.cs
- VisualStyleInformation.cs
- ProfilePropertyMetadata.cs
- InputMethodStateTypeInfo.cs
- ContractComponent.cs
- ToolZone.cs
- Cursor.cs
- COM2ComponentEditor.cs
- ToolStripItem.cs
- GridView.cs
- Control.cs
- CellParagraph.cs
- MetadataPropertyCollection.cs
- PostBackTrigger.cs
- NetworkInformationPermission.cs
- RichTextBox.cs
- Item.cs
- RowParagraph.cs
- SpAudioStreamWrapper.cs
- ConfigurationPropertyAttribute.cs
- BroadcastEventHelper.cs
- ImmutableDispatchRuntime.cs
- CheckBoxRenderer.cs
- AsmxEndpointPickerExtension.cs
- NumberFormatter.cs
- ListViewGroup.cs
- ObjectDataProvider.cs
- ProvidersHelper.cs
- Listbox.cs
- DesignerActionItem.cs
- DataListItem.cs
- _FixedSizeReader.cs
- GenericTypeParameterBuilder.cs
- Registry.cs
- EventDescriptor.cs
- HttpModuleActionCollection.cs
- SizeLimitedCache.cs
- DbConnectionPoolGroupProviderInfo.cs
- ProxyElement.cs
- DataControlImageButton.cs
- CollectionAdapters.cs
- ExtendedPropertyCollection.cs
- UrlPath.cs
- DeploymentSection.cs
- MergeFailedEvent.cs
- CodeBlockBuilder.cs
- XmlNavigatorStack.cs
- InternalSafeNativeMethods.cs
- ICspAsymmetricAlgorithm.cs
- EmbeddedMailObjectsCollection.cs
- FontFamilyValueSerializer.cs
- StickyNote.cs
- EventSourceCreationData.cs
- FileSecurity.cs
- ServerValidateEventArgs.cs
- ContentPlaceHolder.cs
- Vector3DCollectionConverter.cs
- SystemInfo.cs
- ContentControl.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- PropertyInformationCollection.cs
- FixedTextPointer.cs
- RadioButtonRenderer.cs
- CodeTypeParameter.cs