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
- SessionStateContainer.cs
- NamespaceInfo.cs
- StateDesigner.cs
- CodeNamespaceImport.cs
- FocusWithinProperty.cs
- ExtendedPropertyDescriptor.cs
- InfoCardPolicy.cs
- ConstrainedDataObject.cs
- AmbiguousMatchException.cs
- DataGridViewCellValidatingEventArgs.cs
- LineGeometry.cs
- CopyNodeSetAction.cs
- NetworkInformationPermission.cs
- HttpHandlerActionCollection.cs
- ImageBrush.cs
- FlagsAttribute.cs
- ToolStripPanelCell.cs
- FixedStringLookup.cs
- EncoderReplacementFallback.cs
- PeerNameRegistration.cs
- FollowerQueueCreator.cs
- ThreadStateException.cs
- QueryOptionExpression.cs
- CardSpaceShim.cs
- CriticalExceptions.cs
- ErrorTableItemStyle.cs
- HeaderElement.cs
- followingsibling.cs
- TypedTableBaseExtensions.cs
- WebHttpSecurityElement.cs
- LoginView.cs
- ListControlDataBindingHandler.cs
- DSASignatureFormatter.cs
- FamilyTypeface.cs
- MessageDirection.cs
- Graphics.cs
- Image.cs
- ToolboxItemAttribute.cs
- FigureHelper.cs
- SafeWaitHandle.cs
- UrlParameterWriter.cs
- PointIndependentAnimationStorage.cs
- HtmlForm.cs
- Header.cs
- SystemResourceKey.cs
- Point4D.cs
- ObfuscateAssemblyAttribute.cs
- FixUpCollection.cs
- StreamUpgradeAcceptor.cs
- AuthenticationServiceManager.cs
- DataGridTablesFactory.cs
- RemotingConfiguration.cs
- DatasetMethodGenerator.cs
- Activation.cs
- Error.cs
- OptimizerPatterns.cs
- DoubleCollection.cs
- SharedPersonalizationStateInfo.cs
- TextSpan.cs
- StretchValidation.cs
- SrgsElementFactory.cs
- OperationContextScope.cs
- GotoExpression.cs
- IsolatedStorage.cs
- SqlDependencyListener.cs
- ComponentEditorForm.cs
- InternalConfigEventArgs.cs
- IndexerNameAttribute.cs
- HtmlDocument.cs
- TemplateControl.cs
- FrugalList.cs
- DateTimeParse.cs
- ComplusTypeValidator.cs
- Inline.cs
- _LocalDataStoreMgr.cs
- SymDocumentType.cs
- ThreadLocal.cs
- DeflateStream.cs
- _HeaderInfo.cs
- GPPOINTF.cs
- DataGridHelper.cs
- HostingMessageProperty.cs
- Regex.cs
- CompilerInfo.cs
- CellPartitioner.cs
- EntityDataSourceViewSchema.cs
- SamlAuthorizationDecisionClaimResource.cs
- WorkflowApplicationEventArgs.cs
- MatrixTransform.cs
- Utils.cs
- PropertyPushdownHelper.cs
- BamlTreeMap.cs
- DataSourceProvider.cs
- MetabaseReader.cs
- PropertyManager.cs
- ErrorLog.cs
- DiscoveryEndpointElement.cs
- BinaryCommonClasses.cs
- DataGridViewComboBoxCell.cs
- SplitterPanel.cs