DataContractResolver.TryResolveType Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overschrijf deze methode om een gegevenscontracttype toe te wijzen aan een xsi:type naam en naamruimte tijdens de serialisatie.
public:
abstract bool TryResolveType(Type ^ type, Type ^ declaredType, System::Runtime::Serialization::DataContractResolver ^ knownTypeResolver, [Runtime::InteropServices::Out] System::Xml::XmlDictionaryString ^ % typeName, [Runtime::InteropServices::Out] System::Xml::XmlDictionaryString ^ % typeNamespace);
public abstract bool TryResolveType(Type type, Type declaredType, System.Runtime.Serialization.DataContractResolver knownTypeResolver, out System.Xml.XmlDictionaryString typeName, out System.Xml.XmlDictionaryString typeNamespace);
abstract member TryResolveType : Type * Type * System.Runtime.Serialization.DataContractResolver * XmlDictionaryString * XmlDictionaryString -> bool
Public MustOverride Function TryResolveType (type As Type, declaredType As Type, knownTypeResolver As DataContractResolver, ByRef typeName As XmlDictionaryString, ByRef typeNamespace As XmlDictionaryString) As Boolean
Parameters
- type
- Type
Het type dat moet worden toegewezen.
- declaredType
- Type
Het type dat in het gegevenscontract is gedeclareerd.
- knownTypeResolver
- DataContractResolver
De bekende type-resolver.
- typeName
- XmlDictionaryString
De xsi:typenaam.
- typeNamespace
- XmlDictionaryString
De xsi:type naamruimte.
Retouren
true indien toewijzing is geslaagd; anders, false.
Voorbeelden
In het volgende voorbeeld ziet u een implementatie van de TryResolveType methode.
// 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;
}
Opmerkingen
Als u de logica voor bekende typeomzetting in uw implementatie wilt gebruiken, wordt er een verwijzing naar deze logica doorgegeven als de knownTypeResolver parameter.