Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LazyLoadBehavior.cs
- FormatterServices.cs
- RoutedEventConverter.cs
- PtsHelper.cs
- DataViewListener.cs
- Hex.cs
- TypeElement.cs
- MimePart.cs
- VirtualizingPanel.cs
- XPathExpr.cs
- JoinQueryOperator.cs
- ReadOnlyCollectionBase.cs
- CookieHandler.cs
- DBPropSet.cs
- RequestQueue.cs
- ReplacementText.cs
- TabControl.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- Utils.cs
- CodeDomSerializerException.cs
- OpCellTreeNode.cs
- SafeHandles.cs
- UndoManager.cs
- DBBindings.cs
- RadioButtonPopupAdapter.cs
- WebPartConnectionsConfigureVerb.cs
- ObjectTypeMapping.cs
- LocalizeDesigner.cs
- ListBoxChrome.cs
- CqlLexer.cs
- ConfigurationConverterBase.cs
- UIHelper.cs
- DependencyPropertyKey.cs
- X509Certificate.cs
- SmiContextFactory.cs
- ResXDataNode.cs
- FastEncoderWindow.cs
- StringAnimationUsingKeyFrames.cs
- FixedPage.cs
- Stopwatch.cs
- WebPartConnectionsCancelVerb.cs
- CodeDirectoryCompiler.cs
- IdentityValidationException.cs
- SelectionService.cs
- HtmlInputFile.cs
- SiteMembershipCondition.cs
- BinaryFormatterWriter.cs
- TablePattern.cs
- InputGestureCollection.cs
- TemplateField.cs
- RelatedView.cs
- CompressedStack.cs
- HtmlHead.cs
- HttpRequestCacheValidator.cs
- DiscreteKeyFrames.cs
- AssemblyAssociatedContentFileAttribute.cs
- Stack.cs
- ProgressBarAutomationPeer.cs
- InvalidOleVariantTypeException.cs
- ResourceBinder.cs
- RSAPKCS1SignatureFormatter.cs
- ObjectStateEntry.cs
- PathGeometry.cs
- DataGridViewColumnStateChangedEventArgs.cs
- VectorKeyFrameCollection.cs
- MenuEventArgs.cs
- FrameworkContentElement.cs
- ObjectContextServiceProvider.cs
- BufferAllocator.cs
- ModelPerspective.cs
- Subordinate.cs
- RootAction.cs
- WindowsRichEditRange.cs
- COM2EnumConverter.cs
- HyperLinkField.cs
- FixedPageProcessor.cs
- MenuAdapter.cs
- DisplayNameAttribute.cs
- EntityConnectionStringBuilder.cs
- GeometryModel3D.cs
- SubclassTypeValidatorAttribute.cs
- DoubleConverter.cs
- SqlDuplicator.cs
- Light.cs
- NestPullup.cs
- SchemaInfo.cs
- SQLDecimalStorage.cs
- SqlColumnizer.cs
- Parallel.cs
- LayoutEvent.cs
- _NativeSSPI.cs
- CommandCollectionEditor.cs
- webproxy.cs
- DictionaryTraceRecord.cs
- XPathNavigatorKeyComparer.cs
- WindowsAuthenticationEventArgs.cs
- ErrorHandler.cs
- MailWriter.cs
- ReferentialConstraint.cs
- WorkflowControlClient.cs