Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / KnownTypeDataContractResolver.cs / 1305376 / KnownTypeDataContractResolver.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Runtime.Serialization { using System.Xml; sealed class KnownTypeDataContractResolver : DataContractResolver { XmlObjectSerializerContext context; internal KnownTypeDataContractResolver(XmlObjectSerializerContext context) { Fx.Assert(context != null, "KnownTypeDataContractResolver should not be instantiated with a null context"); this.context = context; } public override bool TryResolveType(Type type, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace) { if (type == null) { typeName = null; typeNamespace = null; return false; } if (declaredType != null && declaredType.IsInterface && CollectionDataContract.IsCollectionInterface(declaredType)) { typeName = null; typeNamespace = null; return true; } DataContract contract = DataContract.GetDataContract(type); if (context.IsKnownType(contract, contract.KnownDataContracts, declaredType)) { typeName = contract.Name; typeNamespace = contract.Namespace; return true; } else { typeName = null; typeNamespace = null; return false; } } public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver) { if (typeName == null || typeNamespace == null) return null; return context.ResolveNameFromKnownTypes(new XmlQualifiedName(typeName, typeNamespace)); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Runtime.Serialization { using System.Xml; sealed class KnownTypeDataContractResolver : DataContractResolver { XmlObjectSerializerContext context; internal KnownTypeDataContractResolver(XmlObjectSerializerContext context) { Fx.Assert(context != null, "KnownTypeDataContractResolver should not be instantiated with a null context"); this.context = context; } public override bool TryResolveType(Type type, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace) { if (type == null) { typeName = null; typeNamespace = null; return false; } if (declaredType != null && declaredType.IsInterface && CollectionDataContract.IsCollectionInterface(declaredType)) { typeName = null; typeNamespace = null; return true; } DataContract contract = DataContract.GetDataContract(type); if (context.IsKnownType(contract, contract.KnownDataContracts, declaredType)) { typeName = contract.Name; typeNamespace = contract.Namespace; return true; } else { typeName = null; typeNamespace = null; return false; } } public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver) { if (typeName == null || typeNamespace == null) return null; return context.ResolveNameFromKnownTypes(new XmlQualifiedName(typeName, 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
- CultureSpecificCharacterBufferRange.cs
- CompoundFileStreamReference.cs
- Journal.cs
- QueueProcessor.cs
- ParameterDataSourceExpression.cs
- SkipStoryboardToFill.cs
- SystemIcons.cs
- ReadOnlyHierarchicalDataSource.cs
- ObjectContextServiceProvider.cs
- Invariant.cs
- SetterBase.cs
- ParameterEditorUserControl.cs
- MetadataItemEmitter.cs
- NameTable.cs
- DataGridViewSortCompareEventArgs.cs
- SafeSecurityHelper.cs
- WinInetCache.cs
- ListViewPagedDataSource.cs
- _NestedMultipleAsyncResult.cs
- BasicExpandProvider.cs
- SqlClientFactory.cs
- Material.cs
- Int64KeyFrameCollection.cs
- ProcessingInstructionAction.cs
- TracedNativeMethods.cs
- XmlMemberMapping.cs
- invalidudtexception.cs
- BitmapEffectvisualstate.cs
- TrackPointCollection.cs
- DesignerOptionService.cs
- PropertyManager.cs
- NonSerializedAttribute.cs
- OperationInfoBase.cs
- TypeInfo.cs
- HealthMonitoringSection.cs
- WindowsClaimSet.cs
- OledbConnectionStringbuilder.cs
- TabControl.cs
- URLString.cs
- FloaterParagraph.cs
- CanonicalizationDriver.cs
- DiagnosticEventProvider.cs
- MetadataFile.cs
- PolyLineSegment.cs
- InnerItemCollectionView.cs
- ContentDefinition.cs
- ArrayElementGridEntry.cs
- IntegerValidatorAttribute.cs
- GridViewAutomationPeer.cs
- ControlPersister.cs
- Accessors.cs
- ResourceDefaultValueAttribute.cs
- AliasedSlot.cs
- CompatibleIComparer.cs
- RtfToXamlLexer.cs
- PaintValueEventArgs.cs
- IisTraceWebEventProvider.cs
- ComplexTypeEmitter.cs
- ImportDesigner.xaml.cs
- XMLSchema.cs
- FtpRequestCacheValidator.cs
- TreeBuilder.cs
- HttpCachePolicyElement.cs
- X509Chain.cs
- SQLGuidStorage.cs
- ObjectDataSourceView.cs
- RegexStringValidatorAttribute.cs
- MethodExpr.cs
- DataControlLinkButton.cs
- MarshalDirectiveException.cs
- DesignerLabelAdapter.cs
- ReadOnlyDataSourceView.cs
- ZipIOExtraFieldZip64Element.cs
- shaper.cs
- AtomMaterializerLog.cs
- XomlCompilerResults.cs
- PersonalizationEntry.cs
- AssemblyResourceLoader.cs
- UTF8Encoding.cs
- ProxyHwnd.cs
- WsdlHelpGeneratorElement.cs
- FixedFlowMap.cs
- DiffuseMaterial.cs
- DataGridSortCommandEventArgs.cs
- TypeDescriptionProviderAttribute.cs
- DefaultHttpHandler.cs
- URLEditor.cs
- ApplicationSecurityInfo.cs
- ClientUtils.cs
- GroupDescription.cs
- PanningMessageFilter.cs
- Accessible.cs
- PersonalizationDictionary.cs
- TraceContextRecord.cs
- SpellerStatusTable.cs
- MemberCollection.cs
- IndexedString.cs
- NetMsmqSecurity.cs
- PriorityQueue.cs
- SerialStream.cs