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
- DataRowChangeEvent.cs
- ToolStripProgressBar.cs
- Size3DConverter.cs
- WaitHandleCannotBeOpenedException.cs
- EventRecordWrittenEventArgs.cs
- MediaElementAutomationPeer.cs
- FindProgressChangedEventArgs.cs
- PageRequestManager.cs
- PagerSettings.cs
- ScriptingJsonSerializationSection.cs
- GlyphRun.cs
- ObjectDataSourceView.cs
- OdbcEnvironment.cs
- CachedFontFamily.cs
- Style.cs
- WebPartEditVerb.cs
- ClientCultureInfo.cs
- SoapReflector.cs
- User.cs
- SqlDataSourceAdvancedOptionsForm.cs
- WizardSideBarListControlItemEventArgs.cs
- Config.cs
- DetailsViewCommandEventArgs.cs
- SafeRightsManagementPubHandle.cs
- Latin1Encoding.cs
- AvTraceFormat.cs
- EncryptedData.cs
- Claim.cs
- BindingSource.cs
- BrowserCapabilitiesFactoryBase.cs
- ResXResourceWriter.cs
- MatrixUtil.cs
- wmiutil.cs
- Rect.cs
- DataGridViewTopLeftHeaderCell.cs
- CodePropertyReferenceExpression.cs
- DrawingGroup.cs
- FileIOPermission.cs
- ProgressChangedEventArgs.cs
- ConfigXmlWhitespace.cs
- BinarySerializer.cs
- unitconverter.cs
- Overlapped.cs
- PersonalizationEntry.cs
- XmlKeywords.cs
- WizardForm.cs
- DBAsyncResult.cs
- MutexSecurity.cs
- JournalEntryStack.cs
- AnonymousIdentificationSection.cs
- LinearQuaternionKeyFrame.cs
- CodeDelegateInvokeExpression.cs
- CreateUserErrorEventArgs.cs
- PolyLineSegmentFigureLogic.cs
- validationstate.cs
- ZipIOLocalFileHeader.cs
- AttributeQuery.cs
- SqlRewriteScalarSubqueries.cs
- IncrementalReadDecoders.cs
- FlowDocumentScrollViewer.cs
- AdornerDecorator.cs
- ViewStateException.cs
- AesManaged.cs
- ResourcesChangeInfo.cs
- SecurityElement.cs
- XmlNamedNodeMap.cs
- RelOps.cs
- DataServiceResponse.cs
- MessageDecoder.cs
- ContainerAction.cs
- EdmPropertyAttribute.cs
- XsdBuildProvider.cs
- CalendarAutoFormat.cs
- Currency.cs
- ButtonChrome.cs
- FullTextState.cs
- OptionalMessageQuery.cs
- RawKeyboardInputReport.cs
- SelectionProcessor.cs
- RewritingProcessor.cs
- ApplicationException.cs
- TableSectionStyle.cs
- TextTreeUndo.cs
- ProfileBuildProvider.cs
- ComponentEditorPage.cs
- embossbitmapeffect.cs
- EntityViewGenerationAttribute.cs
- DbParameterHelper.cs
- WinInetCache.cs
- RotationValidation.cs
- ApplicationId.cs
- AdornedElementPlaceholder.cs
- XPathNavigator.cs
- FormViewAutoFormat.cs
- EntityDataSourceWizardForm.cs
- BaseWebProxyFinder.cs
- ToolBarButtonDesigner.cs
- DropShadowBitmapEffect.cs
- Thread.cs
- XPathQilFactory.cs