DataContractResolver.TryResolveType Method
.NET Framework 4.5
Override this method to map a data contract type to an xsi:type name and namespace during serialization.
Namespace: System.Runtime.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 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 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.