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
- backend.cs
- WmlSelectionListAdapter.cs
- PtsCache.cs
- Dictionary.cs
- DataGridViewUtilities.cs
- Predicate.cs
- ServiceNameElementCollection.cs
- InputLanguageManager.cs
- XPathScanner.cs
- SqlComparer.cs
- AudioFileOut.cs
- MemberExpression.cs
- Pair.cs
- GeneratedContractType.cs
- TableCell.cs
- DetailsView.cs
- CapabilitiesRule.cs
- XmlAttribute.cs
- unsafeIndexingFilterStream.cs
- PixelFormats.cs
- AndMessageFilter.cs
- OledbConnectionStringbuilder.cs
- JsonUriDataContract.cs
- graph.cs
- VectorKeyFrameCollection.cs
- DataGridViewHitTestInfo.cs
- CultureInfoConverter.cs
- ChannelManagerService.cs
- TextRangeSerialization.cs
- AspNetHostingPermission.cs
- BamlBinaryReader.cs
- MapPathBasedVirtualPathProvider.cs
- BaseAppDomainProtocolHandler.cs
- WithParamAction.cs
- ResetableIterator.cs
- AbsoluteQuery.cs
- GregorianCalendar.cs
- CodeCommentStatement.cs
- XmlnsCache.cs
- RectKeyFrameCollection.cs
- MinMaxParagraphWidth.cs
- ReadOnlyCollectionBase.cs
- WebPartCollection.cs
- CodeTypeConstructor.cs
- SHA512Cng.cs
- Point3DAnimationBase.cs
- RightsManagementEncryptedStream.cs
- NativeMethodsOther.cs
- RepeaterCommandEventArgs.cs
- ImageSource.cs
- TdsParserHelperClasses.cs
- MenuCommandsChangedEventArgs.cs
- CatalogZoneDesigner.cs
- QilXmlWriter.cs
- ClientSettingsStore.cs
- BindingExpressionUncommonField.cs
- UnionCodeGroup.cs
- ExtensionDataReader.cs
- DATA_BLOB.cs
- MaskInputRejectedEventArgs.cs
- TemplateModeChangedEventArgs.cs
- SafeNativeMethodsMilCoreApi.cs
- XmlEntityReference.cs
- WorkflowDispatchContext.cs
- EtwTrace.cs
- AnnotationComponentChooser.cs
- IisHelper.cs
- FullTextState.cs
- AddInIpcChannel.cs
- DocumentPageHost.cs
- OrderedDictionaryStateHelper.cs
- TraceFilter.cs
- NodeLabelEditEvent.cs
- DeclarationUpdate.cs
- DataGridViewTextBoxColumn.cs
- PerspectiveCamera.cs
- StartUpEventArgs.cs
- TextDecorationCollection.cs
- AnnotationMap.cs
- Nodes.cs
- MinMaxParagraphWidth.cs
- SqlNotificationRequest.cs
- WebPartRestoreVerb.cs
- UnrecognizedAssertionsBindingElement.cs
- UrlPropertyAttribute.cs
- DataGridComponentEditor.cs
- DbSourceCommand.cs
- KnowledgeBase.cs
- BaseAddressPrefixFilterElement.cs
- ResourcesGenerator.cs
- CodeTypeParameterCollection.cs
- LinkLabelLinkClickedEvent.cs
- RtfToXamlReader.cs
- ToolBarTray.cs
- SoapExtensionTypeElementCollection.cs
- PermissionSetTriple.cs
- HtmlImage.cs
- DbParameterCollection.cs
- ToolStripLocationCancelEventArgs.cs
- DecodeHelper.cs