IDataContractSurrogate.GetReferencedTypeOnImport Methode

Definition

Gibt während des Schemaimports den Typ zurück, auf den das Schema verweist.

public:
 Type ^ GetReferencedTypeOnImport(System::String ^ typeName, System::String ^ typeNamespace, System::Object ^ customData);
public Type GetReferencedTypeOnImport(string typeName, string typeNamespace, object customData);
abstract member GetReferencedTypeOnImport : string * string * obj -> Type
Public Function GetReferencedTypeOnImport (typeName As String, typeNamespace As String, customData As Object) As Type

Parameter

typeName
String

Der Name des Typs im Schema.

typeNamespace
String

Der Namespace des Typs im Schema.

customData
Object

Das Objekt, das die in die XML-Schemadefinition eingefügte Anmerkung darstellt. Dabei handelt es sich um Daten, die zum Suchen des referenzierten Typs verwendet werden können.

Gibt zurück

Der Type für den Referenztyp zu verwendende Typ.

Beispiele

Das folgende Beispiel zeigt eine Implementierung der GetReferencedTypeOnImport Methode.

public Type GetReferencedTypeOnImport(string typeName,
    string typeNamespace, object customData)
{
    Console.WriteLine("GetReferencedTypeOnImport invoked");
    // This method is called on schema import.
    // If a PersonSurrogated data contract is
    // in the specified namespace, do not create a new type for it
    // because there is already an existing type, "Person".
    Console.WriteLine( "\t Type Name: {0}", typeName);

    if (typeName.Equals("PersonSurrogated") )
    {
        Console.WriteLine("Returning Person");
        return typeof(Person);
    }
    return null;
}
Public Function GetReferencedTypeOnImport(ByVal typeName As String, _
    ByVal typeNamespace As String, ByVal customData As Object) As Type _
    Implements IDataContractSurrogate.GetReferencedTypeOnImport
    Console.WriteLine("GetReferencedTypeOnImport invoked")
    ' This method is called on schema import.
    ' If a PersonSurrogated data contract is 
    ' in the specified namespace, do not create a new type for it 
    ' because there is already an existing type, "Person".
    Console.WriteLine(vbTab & "Type Name: {0}", typeName)

    'If typeNamespace.Equals("http://schemas.datacontract.org/2004/07/DCSurrogateSample") Then
    If typeName.Equals("PersonSurrogated") Then
        Console.WriteLine("Returning Person")
        Return GetType(Person)
    End If
    'End If
    Return Nothing

End Function

Hinweise

Null sollte zurückgegeben werden, wenn kein CLR-Typ für die Darstellung des Schematyps vorhanden ist. Dies führt dazu, dass während des Schemaimports ein neuer Typ generiert wird.

Gilt für: