DataContractResolver.TryResolveType Methode

Definitie

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.

Van toepassing op