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
- SettingsPropertyIsReadOnlyException.cs
- HtmlInputReset.cs
- prefixendpointaddressmessagefilter.cs
- SecurityDescriptor.cs
- Matrix3DConverter.cs
- FrameAutomationPeer.cs
- StringConcat.cs
- HMACRIPEMD160.cs
- DesignerWidgets.cs
- PropertiesTab.cs
- ByteConverter.cs
- WebConfigurationHostFileChange.cs
- CompilerError.cs
- UniqueConstraint.cs
- TextLineResult.cs
- PropertyMap.cs
- JpegBitmapEncoder.cs
- WebPageTraceListener.cs
- DataListCommandEventArgs.cs
- DictionaryKeyPropertyAttribute.cs
- SimpleWorkerRequest.cs
- AppDomainProtocolHandler.cs
- HttpDigestClientCredential.cs
- ToolStripRenderEventArgs.cs
- PropertyOrder.cs
- SortKey.cs
- WindowsTreeView.cs
- OperationInfoBase.cs
- CalendarBlackoutDatesCollection.cs
- DataRelationPropertyDescriptor.cs
- KeyValueInternalCollection.cs
- BaseCodeDomTreeGenerator.cs
- OdbcHandle.cs
- ObjectCloneHelper.cs
- EpmCustomContentSerializer.cs
- IncrementalCompileAnalyzer.cs
- Maps.cs
- StringConcat.cs
- EditorZoneBase.cs
- CompilerCollection.cs
- Identifier.cs
- SplitContainer.cs
- _NegotiateClient.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- GridViewPageEventArgs.cs
- ConfigurationElementCollection.cs
- BasePattern.cs
- SafeFileHandle.cs
- LockedHandleGlyph.cs
- StorageEndPropertyMapping.cs
- RadioButton.cs
- XmlCodeExporter.cs
- FormattedText.cs
- AdPostCacheSubstitution.cs
- InstanceDataCollection.cs
- DocumentSchemaValidator.cs
- EndPoint.cs
- UnsafeNativeMethods.cs
- PathFigureCollection.cs
- EventLog.cs
- StatusBarDrawItemEvent.cs
- assemblycache.cs
- SymbolEqualComparer.cs
- Vector.cs
- ServicesSection.cs
- sqlinternaltransaction.cs
- NamedPipeWorkerProcess.cs
- EventRouteFactory.cs
- TextServicesDisplayAttribute.cs
- WSDualHttpBindingCollectionElement.cs
- DataGridViewCellFormattingEventArgs.cs
- XamlStyleSerializer.cs
- ModelItemDictionary.cs
- SafeArrayRankMismatchException.cs
- GroupDescription.cs
- EastAsianLunisolarCalendar.cs
- DynamicResourceExtension.cs
- MatrixAnimationBase.cs
- XmlNamespaceManager.cs
- EnumerableRowCollection.cs
- ValidationEventArgs.cs
- ExpressionLink.cs
- AxParameterData.cs
- XmlDataProvider.cs
- ToolStripManager.cs
- DataGridViewToolTip.cs
- MemberMemberBinding.cs
- _SslStream.cs
- FlowLayout.cs
- DataGridViewSortCompareEventArgs.cs
- LazyTextWriterCreator.cs
- ValueChangedEventManager.cs
- WebBrowser.cs
- ConnectionString.cs
- SortableBindingList.cs
- Hex.cs
- PropertyManager.cs
- BufferModeSettings.cs
- EntityDataSourceStatementEditorForm.cs
- TableAdapterManagerGenerator.cs