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
- HexParser.cs
- IDictionary.cs
- WindowsTooltip.cs
- DefaultValidator.cs
- FileLogRecordStream.cs
- FrugalList.cs
- DeferredBinaryDeserializerExtension.cs
- ListViewDesigner.cs
- DataServiceRequest.cs
- CheckBoxField.cs
- CalendarDesigner.cs
- RegexGroupCollection.cs
- DragAssistanceManager.cs
- XmlSchemaSimpleContentRestriction.cs
- XmlTextReader.cs
- QueryOptionExpression.cs
- ConnectionString.cs
- ProcessHostServerConfig.cs
- EventSinkHelperWriter.cs
- TextRangeEditLists.cs
- EpmSyndicationContentSerializer.cs
- SerializerDescriptor.cs
- PropertyTabChangedEvent.cs
- LexicalChunk.cs
- SchemaReference.cs
- DataTableExtensions.cs
- EventMappingSettingsCollection.cs
- PerfCounterSection.cs
- RecommendedAsConfigurableAttribute.cs
- WeakReferenceEnumerator.cs
- SerializationObjectManager.cs
- DataTransferEventArgs.cs
- sqlnorm.cs
- RankException.cs
- TypeContext.cs
- ServerValidateEventArgs.cs
- InkPresenter.cs
- SecurityDocument.cs
- TabletDeviceInfo.cs
- SqlDataAdapter.cs
- Events.cs
- SineEase.cs
- TemplatedMailWebEventProvider.cs
- AmbientLight.cs
- XmlSerializer.cs
- EventLog.cs
- ComponentSerializationService.cs
- PaginationProgressEventArgs.cs
- CounterSample.cs
- Encoder.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- MD5.cs
- FileInfo.cs
- FixUpCollection.cs
- RequestCachePolicy.cs
- XmlElement.cs
- BaseDataBoundControl.cs
- ViewStateModeByIdAttribute.cs
- SqlUserDefinedAggregateAttribute.cs
- SqlClientMetaDataCollectionNames.cs
- Image.cs
- CommittableTransaction.cs
- DictionaryBase.cs
- Merger.cs
- FieldToken.cs
- XamlGridLengthSerializer.cs
- InvokeAction.cs
- keycontainerpermission.cs
- RuntimeUtils.cs
- SafeSecurityHandles.cs
- X509Utils.cs
- _Connection.cs
- DataTableClearEvent.cs
- XsltConvert.cs
- _IPv6Address.cs
- StyleHelper.cs
- DiagnosticsConfiguration.cs
- ListViewDataItem.cs
- HtmlInputPassword.cs
- recordstatescratchpad.cs
- followingquery.cs
- WindowsGraphics2.cs
- SqlUserDefinedTypeAttribute.cs
- UIEndRequest.cs
- DictionaryItemsCollection.cs
- MimeFormImporter.cs
- ResourceReferenceKeyNotFoundException.cs
- WindowsTooltip.cs
- ListViewDataItem.cs
- ToolBarPanel.cs
- CqlBlock.cs
- ThicknessKeyFrameCollection.cs
- InvariantComparer.cs
- BindingListCollectionView.cs
- OdbcConnectionString.cs
- CodeDomSerializerBase.cs
- WebEvents.cs
- BitmapEffectState.cs
- Brush.cs
- CancellationScope.cs