TypeBuilder.AddInterfaceImplementation(Type) 方法

定義

加入這個類型所實作的介面。Adds an interface that this type implements.

public:
 void AddInterfaceImplementation(Type ^ interfaceType);
public void AddInterfaceImplementation (Type interfaceType);
[System.Runtime.InteropServices.ComVisible(true)]
public void AddInterfaceImplementation (Type interfaceType);
member this.AddInterfaceImplementation : Type -> unit
[<System.Runtime.InteropServices.ComVisible(true)>]
member this.AddInterfaceImplementation : Type -> unit
Public Sub AddInterfaceImplementation (interfaceType As Type)

參數

interfaceType
Type

這個類型所實作的介面。The interface that this type implements.

屬性

例外狀況

interfaceTypenullinterfaceType is null.

先前使用 CreateType() 建立的類型。The type was previously created using CreateType().

範例

下列程式碼範例將示範如何使用在動態建立的型別上執行介面 AddInterfaceImplementationThe following code sample demonstrates the implementation of an interface on a dynamically created type using AddInterfaceImplementation.

// Mark the class as implementing 'IHello' interface.
helloWorldTypeBuilder->AddInterfaceImplementation( IHello::typeid );
MethodBuilder^ myMethodBuilder =
   helloWorldTypeBuilder->DefineMethod( "SayHello",
      (MethodAttributes)(MethodAttributes::Public | MethodAttributes::Virtual),
      nullptr,
      nullptr );
// Generate IL for 'SayHello' method.
ILGenerator^ myMethodIL = myMethodBuilder->GetILGenerator();
myMethodIL->EmitWriteLine( myGreetingField );
myMethodIL->Emit( OpCodes::Ret );
MethodInfo^ sayHelloMethod = IHello::typeid->GetMethod( "SayHello" );
helloWorldTypeBuilder->DefineMethodOverride( myMethodBuilder, sayHelloMethod );
 // Mark the class as implementing 'IHello' interface.
 helloWorldTypeBuilder.AddInterfaceImplementation(typeof(IHello));
 MethodBuilder myMethodBuilder =
    helloWorldTypeBuilder.DefineMethod("SayHello",
                         MethodAttributes.Public|MethodAttributes.Virtual,
                         null,
                         null);
 // Generate IL for 'SayHello' method.
 ILGenerator myMethodIL = myMethodBuilder.GetILGenerator();
 myMethodIL.EmitWriteLine(myGreetingField);
 myMethodIL.Emit(OpCodes.Ret);
MethodInfo sayHelloMethod = typeof(IHello).GetMethod("SayHello");
helloWorldTypeBuilder.DefineMethodOverride(myMethodBuilder,sayHelloMethod);
' Mark the class as implementing 'IHello' interface.
helloWorldTypeBuilder.AddInterfaceImplementation(GetType(IHello))
Dim myMethodBuilder As MethodBuilder = helloWorldTypeBuilder.DefineMethod("SayHello", _
                     MethodAttributes.Public Or MethodAttributes.Virtual, Nothing, Nothing)
' Generate IL for 'SayHello' method.
Dim myMethodIL As ILGenerator = myMethodBuilder.GetILGenerator()
myMethodIL.EmitWriteLine(myGreetingField)
myMethodIL.Emit(OpCodes.Ret)
Dim sayHelloMethod As MethodInfo = GetType(IHello).GetMethod("SayHello")
helloWorldTypeBuilder.DefineMethodOverride(myMethodBuilder, sayHelloMethod)

適用於