Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CqlLexerHelpers.cs
- XmlAnyAttributeAttribute.cs
- XslAstAnalyzer.cs
- HiddenFieldPageStatePersister.cs
- UpdateDelegates.Generated.cs
- XmlChoiceIdentifierAttribute.cs
- TrustLevelCollection.cs
- TreeNodeSelectionProcessor.cs
- PointConverter.cs
- PropertyChangingEventArgs.cs
- RadioButtonList.cs
- ChtmlTextWriter.cs
- CollectionViewGroupRoot.cs
- elementinformation.cs
- ExpressionBindingCollection.cs
- FunctionImportMapping.cs
- WorkflowInlining.cs
- AuthenticodeSignatureInformation.cs
- Image.cs
- DecoratedNameAttribute.cs
- IndexedGlyphRun.cs
- ResourceContainer.cs
- StretchValidation.cs
- SelectionChangedEventArgs.cs
- TransactionsSectionGroup.cs
- RawTextInputReport.cs
- ListBox.cs
- ExpressionList.cs
- RectangleGeometry.cs
- Buffer.cs
- LogExtent.cs
- Content.cs
- PerformanceCounterPermissionAttribute.cs
- TextTreeNode.cs
- ScriptingRoleServiceSection.cs
- DataControlFieldCollection.cs
- LogLogRecordEnumerator.cs
- XmlUTF8TextReader.cs
- GenericPrincipal.cs
- MsmqOutputMessage.cs
- HttpCapabilitiesEvaluator.cs
- Boolean.cs
- ConfigurationValue.cs
- ByteRangeDownloader.cs
- SurrogateChar.cs
- BitVector32.cs
- SoapFormatter.cs
- ToolStripSplitStackLayout.cs
- RegistrationProxy.cs
- Slider.cs
- RootContext.cs
- GenericsInstances.cs
- LineProperties.cs
- Deflater.cs
- PropertyOrder.cs
- SystemWebCachingSectionGroup.cs
- TextRangeEdit.cs
- IndexedEnumerable.cs
- FieldToken.cs
- PriorityBinding.cs
- IxmlLineInfo.cs
- _LazyAsyncResult.cs
- FontUnitConverter.cs
- TimeoutStream.cs
- Transform3DGroup.cs
- IISMapPath.cs
- DeferredElementTreeState.cs
- SettingsPropertyWrongTypeException.cs
- AssemblyName.cs
- EdmEntityTypeAttribute.cs
- OdbcConnectionOpen.cs
- WebPartEditorCancelVerb.cs
- CreateUserWizardStep.cs
- XmlSchemaSimpleTypeList.cs
- ColorAnimation.cs
- EdmProperty.cs
- AnimationClock.cs
- CaseKeyBox.xaml.cs
- IdentitySection.cs
- GestureRecognizer.cs
- Selection.cs
- ObjRef.cs
- PersianCalendar.cs
- MetabaseServerConfig.cs
- Peer.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ProtectedConfigurationProviderCollection.cs
- altserialization.cs
- XPathBinder.cs
- ThicknessConverter.cs
- UIElement.cs
- ScriptManagerProxy.cs
- MediaContext.cs
- ExternalException.cs
- AttributeCollection.cs
- HttpSessionStateWrapper.cs
- SoapFault.cs
- AQNBuilder.cs
- SqlAliasesReferenced.cs
- GenericFlowSwitchHelper.cs