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
- EntityKeyElement.cs
- AspProxy.cs
- TextWriterTraceListener.cs
- CodeMethodReturnStatement.cs
- XmlAttributeCache.cs
- ShapingWorkspace.cs
- TypeSystem.cs
- ComUdtElement.cs
- RuleSetCollection.cs
- VisualTreeFlattener.cs
- ExceptionCollection.cs
- SqlDataRecord.cs
- XamlDesignerSerializationManager.cs
- ParallelTimeline.cs
- Utils.cs
- WebServiceFaultDesigner.cs
- OSFeature.cs
- CultureInfoConverter.cs
- FontUnitConverter.cs
- MarkupCompilePass1.cs
- StrokeNode.cs
- XmlCollation.cs
- SocketException.cs
- GridEntry.cs
- DateRangeEvent.cs
- TextBox.cs
- EntityDataSourceEntityTypeFilterItem.cs
- MemberAssignmentAnalysis.cs
- QueryContinueDragEvent.cs
- ReflectTypeDescriptionProvider.cs
- OciLobLocator.cs
- HostProtectionPermission.cs
- DataListItem.cs
- MatrixAnimationBase.cs
- ColorTransformHelper.cs
- ImageCodecInfoPrivate.cs
- DodSequenceMerge.cs
- RegexNode.cs
- DesignRelationCollection.cs
- FilterableAttribute.cs
- Number.cs
- TdsParserSafeHandles.cs
- PersonalizationStateInfoCollection.cs
- ToolboxBitmapAttribute.cs
- CacheSection.cs
- HMACMD5.cs
- TemplatedControlDesigner.cs
- TextBlockAutomationPeer.cs
- RootDesignerSerializerAttribute.cs
- StartUpEventArgs.cs
- NetStream.cs
- ExtentCqlBlock.cs
- RijndaelManagedTransform.cs
- StrongNameKeyPair.cs
- ExpressionBindings.cs
- DbConnectionOptions.cs
- RectValueSerializer.cs
- ReaderWriterLock.cs
- InputGestureCollection.cs
- WebPartZoneDesigner.cs
- ChannelPool.cs
- BorderSidesEditor.cs
- odbcmetadatacolumnnames.cs
- UrlMappingsModule.cs
- Camera.cs
- ByteStreamMessageUtility.cs
- ScriptHandlerFactory.cs
- ProgressBarBrushConverter.cs
- DataGridViewRowsRemovedEventArgs.cs
- ServiceDescriptionImporter.cs
- XmlCharCheckingReader.cs
- DisplayNameAttribute.cs
- ToggleButtonAutomationPeer.cs
- WizardPanelChangingEventArgs.cs
- DesignerActionService.cs
- DataGridCellAutomationPeer.cs
- xamlnodes.cs
- AsyncOperationManager.cs
- ImageConverter.cs
- CapabilitiesAssignment.cs
- OdbcException.cs
- COM2ExtendedTypeConverter.cs
- ControlAdapter.cs
- ComplexType.cs
- FileLoadException.cs
- ProtocolsConfiguration.cs
- ExpressionPrinter.cs
- CompiledXpathExpr.cs
- MetadataUtilsSmi.cs
- TargetControlTypeAttribute.cs
- AstTree.cs
- RelationshipWrapper.cs
- HtmlGenericControl.cs
- HyperLink.cs
- XmlParserContext.cs
- ColumnCollection.cs
- ToolStripArrowRenderEventArgs.cs
- WebPartManager.cs
- OleDbParameterCollection.cs
- Regex.cs