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
- XmlAttributeCache.cs
- JsonServiceDocumentSerializer.cs
- FixedStringLookup.cs
- SequenceNumber.cs
- PropertyMap.cs
- LogAppendAsyncResult.cs
- Calendar.cs
- DeferredElementTreeState.cs
- DelegateSerializationHolder.cs
- PrintControllerWithStatusDialog.cs
- AdjustableArrowCap.cs
- DependentTransaction.cs
- ItemCollection.cs
- Visitors.cs
- DeviceContexts.cs
- InvalidOperationException.cs
- ModelTreeEnumerator.cs
- TextWriterTraceListener.cs
- CellTreeNodeVisitors.cs
- XmlSchemaException.cs
- ServiceObjectContainer.cs
- FormatVersion.cs
- QilStrConcat.cs
- StringHelper.cs
- ExpandSegmentCollection.cs
- TrustLevel.cs
- MemoryMappedFileSecurity.cs
- FastEncoderWindow.cs
- OdbcPermission.cs
- QueryProcessor.cs
- XmlSchemaIdentityConstraint.cs
- SetterBaseCollection.cs
- BrowserDefinition.cs
- SafeRegistryHandle.cs
- LayoutSettings.cs
- TemplateNodeContextMenu.cs
- RepeatBehaviorConverter.cs
- SafeWaitHandle.cs
- LinkUtilities.cs
- CollectionViewProxy.cs
- CommandConverter.cs
- TickBar.cs
- ByteAnimationUsingKeyFrames.cs
- KeyValueSerializer.cs
- FormsAuthenticationModule.cs
- LinkedList.cs
- securestring.cs
- CodeDirectiveCollection.cs
- RequestDescription.cs
- Script.cs
- DetailsViewPagerRow.cs
- ViewCellRelation.cs
- TemplatePagerField.cs
- _LazyAsyncResult.cs
- ResourceDescriptionAttribute.cs
- Content.cs
- SafeCertificateContext.cs
- NamespaceInfo.cs
- RandomNumberGenerator.cs
- basecomparevalidator.cs
- QueryCreatedEventArgs.cs
- CodeTypeReferenceExpression.cs
- FieldBuilder.cs
- TextEndOfParagraph.cs
- XmlElementCollection.cs
- HttpResponseInternalBase.cs
- EventDescriptor.cs
- SqlCachedBuffer.cs
- HybridDictionary.cs
- CheckBox.cs
- SafeHandles.cs
- XsltContext.cs
- ActivitiesCollection.cs
- XsltArgumentList.cs
- BookmarkManager.cs
- DefaultDiscoveryServiceExtension.cs
- UnaryExpression.cs
- OracleBFile.cs
- SqlFunctions.cs
- CodeObjectCreateExpression.cs
- AnimationClockResource.cs
- XmlSchemaGroupRef.cs
- StructuredTypeEmitter.cs
- TypeSystem.cs
- ListBindableAttribute.cs
- DispatcherSynchronizationContext.cs
- XmlWrappingWriter.cs
- TcpClientChannel.cs
- EndpointConfigContainer.cs
- Expander.cs
- UmAlQuraCalendar.cs
- NonSerializedAttribute.cs
- TraceContextEventArgs.cs
- DashStyles.cs
- MergeLocalizationDirectives.cs
- QueryOutputWriter.cs
- XmlSchema.cs
- AssemblyAttributesGoHere.cs
- BoundsDrawingContextWalker.cs
- DeploymentSection.cs