Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Objects / ProxyDataContractResolver.cs / 1305376 / ProxyDataContractResolver.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Runtime.Serialization; namespace System.Data.Objects { ////// A DataContractResolver that knows how to resolve proxy types created for persistent /// ignorant classes to their base types. This is used with the DataContractSerializer. /// public class ProxyDataContractResolver : DataContractResolver { private XsdDataContractExporter _exporter = new XsdDataContractExporter(); public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver) { EntityUtil.CheckStringArgument(typeName, "typeName"); EntityUtil.CheckStringArgument(typeNamespace, "typeNamespace"); EntityUtil.CheckArgumentNull(declaredType, "declaredType"); EntityUtil.CheckArgumentNull(knownTypeResolver, "knownTypeResolver"); return knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType ,null); } public override bool TryResolveType(Type dataContractType, Type declaredType, DataContractResolver knownTypeResolver, out System.Xml.XmlDictionaryString typeName, out System.Xml.XmlDictionaryString typeNamespace) { EntityUtil.CheckArgumentNull(dataContractType, "dataContractType"); EntityUtil.CheckArgumentNull(declaredType, "declaredType"); EntityUtil.CheckArgumentNull(knownTypeResolver, "knownTypeResolver"); Type nonProxyType = ObjectContext.GetObjectType(dataContractType); if (nonProxyType != dataContractType) { // Type was a proxy type, so map the name to the non-proxy name XmlQualifiedName qualifiedName = _exporter.GetSchemaTypeName(nonProxyType); XmlDictionary dictionary = new XmlDictionary(2); typeName = new XmlDictionaryString(dictionary, qualifiedName.Name, 0); typeNamespace = new XmlDictionaryString(dictionary, qualifiedName.Namespace, 1); return true; } else { // Type was not a proxy type, so do the default return knownTypeResolver.TryResolveType(dataContractType, declaredType, null, out typeName, out typeNamespace); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Runtime.Serialization; namespace System.Data.Objects { ////// A DataContractResolver that knows how to resolve proxy types created for persistent /// ignorant classes to their base types. This is used with the DataContractSerializer. /// public class ProxyDataContractResolver : DataContractResolver { private XsdDataContractExporter _exporter = new XsdDataContractExporter(); public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver) { EntityUtil.CheckStringArgument(typeName, "typeName"); EntityUtil.CheckStringArgument(typeNamespace, "typeNamespace"); EntityUtil.CheckArgumentNull(declaredType, "declaredType"); EntityUtil.CheckArgumentNull(knownTypeResolver, "knownTypeResolver"); return knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType ,null); } public override bool TryResolveType(Type dataContractType, Type declaredType, DataContractResolver knownTypeResolver, out System.Xml.XmlDictionaryString typeName, out System.Xml.XmlDictionaryString typeNamespace) { EntityUtil.CheckArgumentNull(dataContractType, "dataContractType"); EntityUtil.CheckArgumentNull(declaredType, "declaredType"); EntityUtil.CheckArgumentNull(knownTypeResolver, "knownTypeResolver"); Type nonProxyType = ObjectContext.GetObjectType(dataContractType); if (nonProxyType != dataContractType) { // Type was a proxy type, so map the name to the non-proxy name XmlQualifiedName qualifiedName = _exporter.GetSchemaTypeName(nonProxyType); XmlDictionary dictionary = new XmlDictionary(2); typeName = new XmlDictionaryString(dictionary, qualifiedName.Name, 0); typeNamespace = new XmlDictionaryString(dictionary, qualifiedName.Namespace, 1); return true; } else { // Type was not a proxy type, so do the default return knownTypeResolver.TryResolveType(dataContractType, declaredType, null, out typeName, out typeNamespace); } } } } // 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
- PanelStyle.cs
- diagnosticsswitches.cs
- Point4D.cs
- ToolTipService.cs
- SID.cs
- OleDbSchemaGuid.cs
- FamilyCollection.cs
- ToolBarOverflowPanel.cs
- TransformerConfigurationWizardBase.cs
- XmlSerializerSection.cs
- ZipIOExtraFieldElement.cs
- StreamInfo.cs
- PersonalizationEntry.cs
- ExpressionParser.cs
- ForeignKeyConstraint.cs
- MSHTMLHost.cs
- FloaterBaseParaClient.cs
- SqlDeflator.cs
- SynchronousSendBindingElement.cs
- AppLevelCompilationSectionCache.cs
- WinFormsSpinner.cs
- MobileListItemCollection.cs
- LoginStatusDesigner.cs
- EntityContainerEntitySet.cs
- ThemeableAttribute.cs
- WebPermission.cs
- FormsAuthenticationModule.cs
- SortDescriptionCollection.cs
- TextCharacters.cs
- TemplateNameScope.cs
- Restrictions.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- VSWCFServiceContractGenerator.cs
- XmlSignatureManifest.cs
- GroupJoinQueryOperator.cs
- WebPartRestoreVerb.cs
- IssuanceTokenProviderState.cs
- GenericParameterDataContract.cs
- DynamicObjectAccessor.cs
- SiteOfOriginContainer.cs
- Contracts.cs
- StandardOleMarshalObject.cs
- ObjectViewListener.cs
- EnumConverter.cs
- HideDisabledControlAdapter.cs
- QueryCacheEntry.cs
- TabPage.cs
- Point3DCollection.cs
- EvidenceTypeDescriptor.cs
- EqualityComparer.cs
- BrowserCapabilitiesFactory.cs
- RenderingEventArgs.cs
- RequestDescription.cs
- RowUpdatedEventArgs.cs
- StoreContentChangedEventArgs.cs
- ScrollBar.cs
- PrinterSettings.cs
- ErrorStyle.cs
- TextAdaptor.cs
- XmlSchemaSet.cs
- WebServiceParameterData.cs
- FormViewModeEventArgs.cs
- CustomDictionarySources.cs
- BamlWriter.cs
- EDesignUtil.cs
- PeerName.cs
- ComponentResourceKey.cs
- TypeGeneratedEventArgs.cs
- CapabilitiesState.cs
- PrimaryKeyTypeConverter.cs
- SpoolingTaskBase.cs
- Int32CollectionConverter.cs
- RangeValuePattern.cs
- ActivityBindForm.Designer.cs
- DbConnectionInternal.cs
- XmlSchemaSimpleTypeRestriction.cs
- RowBinding.cs
- Util.cs
- CompilerWrapper.cs
- MultipleCopiesCollection.cs
- MouseButton.cs
- ObjectHelper.cs
- CompilerLocalReference.cs
- RegexNode.cs
- ToolStripPanelRow.cs
- Comparer.cs
- DataSet.cs
- WebPartConnectionsCancelVerb.cs
- HWStack.cs
- BitmapEffectGeneralTransform.cs
- ButtonChrome.cs
- DeleteWorkflowOwnerCommand.cs
- EntityClassGenerator.cs
- DataControlImageButton.cs
- PeerValidationBehavior.cs
- IncrementalReadDecoders.cs
- MiniMapControl.xaml.cs
- List.cs
- SchemaInfo.cs
- ZoneLinkButton.cs