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
- SqlDataSourceCommandEventArgs.cs
- MsmqIntegrationSecurity.cs
- RSAPKCS1SignatureDeformatter.cs
- EventNotify.cs
- RequestCachingSection.cs
- KeyedQueue.cs
- MemoryMappedViewAccessor.cs
- PageBuildProvider.cs
- QilReplaceVisitor.cs
- ReflectionPermission.cs
- FrameworkContextData.cs
- LinqDataSourceDeleteEventArgs.cs
- SmiRecordBuffer.cs
- UIElementParagraph.cs
- QilStrConcatenator.cs
- DocumentPageViewAutomationPeer.cs
- ToolStripOverflow.cs
- TextEditor.cs
- PolicyValidationException.cs
- DataReceivedEventArgs.cs
- UInt64Storage.cs
- SafeWaitHandle.cs
- ForeignKeyConstraint.cs
- SoapFault.cs
- MenuItemAutomationPeer.cs
- WindowsListView.cs
- SimpleWebHandlerParser.cs
- XmlArrayAttribute.cs
- WindowsSidIdentity.cs
- NativeCompoundFileAPIs.cs
- XamlBrushSerializer.cs
- MetadataCache.cs
- CalendarButtonAutomationPeer.cs
- RemoteWebConfigurationHostStream.cs
- PropertyPath.cs
- ApplicationFileParser.cs
- SqlBinder.cs
- TextEditorSpelling.cs
- WindowShowOrOpenTracker.cs
- TreeBuilder.cs
- ModelTypeConverter.cs
- ImpersonateTokenRef.cs
- PackagingUtilities.cs
- QilInvokeEarlyBound.cs
- TextParagraph.cs
- FormattedTextSymbols.cs
- TimeoutException.cs
- InfoCardArgumentException.cs
- WebPartManager.cs
- FileDialog.cs
- ConfigurationException.cs
- WebRequestModuleElement.cs
- MemberCollection.cs
- dsa.cs
- CaseStatementSlot.cs
- ProcessingInstructionAction.cs
- ToolboxComponentsCreatingEventArgs.cs
- SignatureDescription.cs
- PagesSection.cs
- LoginName.cs
- __TransparentProxy.cs
- StylusLogic.cs
- Cursors.cs
- FixedSOMElement.cs
- PageParserFilter.cs
- GACIdentityPermission.cs
- HtmlInputSubmit.cs
- EmptyCollection.cs
- WmlPanelAdapter.cs
- NamespaceCollection.cs
- ReferentialConstraint.cs
- SerializationEventsCache.cs
- TextProviderWrapper.cs
- ISSmlParser.cs
- CacheRequest.cs
- SettingsPropertyWrongTypeException.cs
- EventlogProvider.cs
- TypeReference.cs
- Visual.cs
- ExpressionPrefixAttribute.cs
- CharEntityEncoderFallback.cs
- HostingEnvironment.cs
- ControlPager.cs
- DropTarget.cs
- ModuleConfigurationInfo.cs
- TextBounds.cs
- ReflectionHelper.cs
- SmtpException.cs
- RequestNavigateEventArgs.cs
- OracleTimeSpan.cs
- SpoolingTask.cs
- future.cs
- ContentControl.cs
- ResXResourceWriter.cs
- XsltOutput.cs
- RewritingProcessor.cs
- ReplyChannelAcceptor.cs
- ReferentialConstraint.cs
- HideDisabledControlAdapter.cs
- GenericUriParser.cs