IDataContractSurrogate.GetReferencedTypeOnImport 方法      
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在架构导入期间,返回由该架构引用的类型。
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 -> TypePublic Function GetReferencedTypeOnImport (typeName As String, typeNamespace As String, customData As Object) As Type参数
- typeName
- String
架构中类型的名称。
- typeNamespace
- String
架构中类型的命名空间。
- customData
- Object
表示插入到 XML 架构定义中的批注的对象,批注是可用于查找引用的类型的数据。
返回
要用于所引用的类型的 Type。
示例
下面的示例演示 GetReferencedTypeOnImport 方法的实现。
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
注解
如果不存在表示架构类型的 CLR 类型,则应返回 Null。 这会导致在架构导入过程中生成一个新类型。