Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / IDataContractSurrogate.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EmissiveMaterial.cs
- DataGridViewCellCollection.cs
- TransactionFilter.cs
- DateTimeOffset.cs
- AppDomainProtocolHandler.cs
- HitTestFilterBehavior.cs
- EntitySetBaseCollection.cs
- ToolStripPanelRenderEventArgs.cs
- DesignerLoader.cs
- OptimizedTemplateContent.cs
- XmlChoiceIdentifierAttribute.cs
- Application.cs
- ReferentialConstraint.cs
- CompensateDesigner.cs
- InputBuffer.cs
- ConvertersCollection.cs
- XmlSchemaComplexType.cs
- RuleSettings.cs
- LayoutTable.cs
- SqlFactory.cs
- ToolboxItemAttribute.cs
- IProvider.cs
- DataAdapter.cs
- EventRoute.cs
- HttpHeaderCollection.cs
- DocumentSchemaValidator.cs
- Function.cs
- PhonemeEventArgs.cs
- WebPartManagerDesigner.cs
- CreateUserWizard.cs
- _ListenerRequestStream.cs
- IteratorDescriptor.cs
- EllipseGeometry.cs
- ToolStripSeparator.cs
- TextDecorationLocationValidation.cs
- CommandEventArgs.cs
- LoadWorkflowAsyncResult.cs
- TypeNameParser.cs
- SQLBytes.cs
- _DigestClient.cs
- WorkflowDesigner.cs
- Bookmark.cs
- Base64Encoding.cs
- AssemblyCollection.cs
- ConfigXmlWhitespace.cs
- DataGridViewHitTestInfo.cs
- SqlLiftWhereClauses.cs
- HttpModuleAction.cs
- StrongNameMembershipCondition.cs
- CLSCompliantAttribute.cs
- ToolStripItemImageRenderEventArgs.cs
- JpegBitmapDecoder.cs
- CacheDependency.cs
- SrgsNameValueTag.cs
- AccessedThroughPropertyAttribute.cs
- SafeWaitHandle.cs
- SessionConnectionReader.cs
- AsyncOperationManager.cs
- QilStrConcat.cs
- SoapAttributeOverrides.cs
- RuleRefElement.cs
- TraceLevelStore.cs
- IFlowDocumentViewer.cs
- ContextMenuStripActionList.cs
- ThemeableAttribute.cs
- GeneralTransform3DCollection.cs
- FrameworkTemplate.cs
- PixelShader.cs
- FilterEventArgs.cs
- RelatedCurrencyManager.cs
- MailWriter.cs
- ExcCanonicalXml.cs
- CheckBoxList.cs
- RouteParameter.cs
- BasicExpandProvider.cs
- ResourceReferenceExpression.cs
- StackBuilderSink.cs
- RecognizedWordUnit.cs
- KeyedCollection.cs
- TransactionFlowBindingElement.cs
- Semaphore.cs
- TreeNode.cs
- HttpConfigurationSystem.cs
- XDeferredAxisSource.cs
- SqlTriggerContext.cs
- CalloutQueueItem.cs
- MarginsConverter.cs
- RadioButton.cs
- XPathNodePointer.cs
- PolygonHotSpot.cs
- TimeSpan.cs
- StoreItemCollection.cs
- DataServiceHost.cs
- ErrorTableItemStyle.cs
- FunctionImportElement.cs
- EncryptedData.cs
- ChannelDispatcherCollection.cs
- WebZone.cs
- Page.cs
- DataSourceConverter.cs