DataContractResolver.TryResolveType Method
Override this method to map a data contract type to an xsi:type name and namespace during serialization.
Assembly: System.Runtime.Serialization (in System.Runtime.Serialization.dll)
public abstract bool TryResolveType( Type type, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace )
Parameters
- type
- Type: System.Type
The type to map.
- declaredType
- Type: System.Type
The type declared in the data contract.
- knownTypeResolver
- Type: System.Runtime.Serialization.DataContractResolver
The known type resolver.
- typeName
- Type: System.Xml.XmlDictionaryString%
The xsi:type name.
- typeNamespace
- Type: System.Xml.XmlDictionaryString%
The xsi:type namespace.
The following example shows an implementation of the TryResolveType(Type, Type, DataContractResolver, XmlDictionaryString, XmlDictionaryString) method.
// Used at serialization // Maps any Type to a new xsi:type representation public override bool TryResolveType(Type type, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace) { string name = type.Name; string namesp = type.Namespace; typeName = new XmlDictionaryString(XmlDictionary.Empty, name, 0); typeNamespace = new XmlDictionaryString(XmlDictionary.Empty, namesp, 0); if (!dictionary.ContainsKey(type.Name)) { dictionary.Add(name, typeName); } if (!dictionary.ContainsKey(type.Namespace)) { dictionary.Add(namesp, typeNamespace); } return true; }
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.