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
- XmlSchemaFacet.cs
- XMLDiffLoader.cs
- ChtmlFormAdapter.cs
- GlobalizationSection.cs
- MultipleViewProviderWrapper.cs
- DesignSurfaceServiceContainer.cs
- ScrollBarAutomationPeer.cs
- OracleConnectionFactory.cs
- WindowsContainer.cs
- XAMLParseException.cs
- CompiledRegexRunner.cs
- SmiEventStream.cs
- DataRecordInfo.cs
- DynamicQueryableWrapper.cs
- ImageClickEventArgs.cs
- HierarchicalDataBoundControlAdapter.cs
- HwndAppCommandInputProvider.cs
- SpeechSynthesizer.cs
- UnmanagedHandle.cs
- OperationCanceledException.cs
- XmlNodeReader.cs
- TextBoxBase.cs
- ECDiffieHellmanCng.cs
- Stroke.cs
- CommandManager.cs
- LocatorPartList.cs
- ActivitySurrogate.cs
- SimpleFieldTemplateUserControl.cs
- DataPointer.cs
- formatstringdialog.cs
- WebPartTransformer.cs
- WeakReferenceEnumerator.cs
- FormsAuthenticationModule.cs
- SpotLight.cs
- TileModeValidation.cs
- BezierSegment.cs
- InputScope.cs
- Control.cs
- UnionCqlBlock.cs
- RemoveStoryboard.cs
- SessionIDManager.cs
- DisplayNameAttribute.cs
- ObjectDataSourceEventArgs.cs
- SafeReversePInvokeHandle.cs
- IndexedEnumerable.cs
- QueryPageSettingsEventArgs.cs
- Quaternion.cs
- MaskInputRejectedEventArgs.cs
- CreatingCookieEventArgs.cs
- Types.cs
- ComplexBindingPropertiesAttribute.cs
- IdnMapping.cs
- OneToOneMappingSerializer.cs
- PrtTicket_Public.cs
- Base64Decoder.cs
- ValuePatternIdentifiers.cs
- PassportAuthentication.cs
- ApplicationActivator.cs
- SqlConnectionFactory.cs
- TimeSpanOrInfiniteConverter.cs
- VirtualizingPanel.cs
- FormClosedEvent.cs
- HttpStreamMessage.cs
- HttpBrowserCapabilitiesWrapper.cs
- ComplexTypeEmitter.cs
- DataSourceControl.cs
- IPHostEntry.cs
- OdbcEnvironmentHandle.cs
- PermissionSet.cs
- Double.cs
- FixedSOMTextRun.cs
- ConfigXmlCDataSection.cs
- Utils.cs
- Token.cs
- TypeUtil.cs
- DesignRelation.cs
- BamlReader.cs
- TabItemAutomationPeer.cs
- _SSPIWrapper.cs
- DoubleSumAggregationOperator.cs
- ExportException.cs
- ChtmlImageAdapter.cs
- ToolStripScrollButton.cs
- CodeAssignStatement.cs
- ConnectionConsumerAttribute.cs
- WebServiceParameterData.cs
- ConnectionPoolManager.cs
- XslAst.cs
- BamlReader.cs
- CatalogZoneBase.cs
- SignatureTargetIdManager.cs
- EntityDataSourceMemberPath.cs
- MenuAutoFormat.cs
- Bidi.cs
- XmlComment.cs
- HopperCache.cs
- DesigntimeLicenseContext.cs
- XmlSchemaValidationException.cs
- ToolStripSeparator.cs
- XmlILModule.cs