ModuleBuilder.DefineType メソッド
TypeBuilder を構築します。値型を定義するには、 ValueType を派生する型を定義します。
オーバーロードの一覧
指定した名前で、型の TypeBuilder を構築します。
[Visual Basic] Overloads Public Function DefineType(String) As TypeBuilder
型名と型属性を指定して、 TypeBuilder を構築します。
[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes) As TypeBuilder
[C++] public: TypeBuilder* DefineType(String*, TypeAttributes);
[JScript] public function DefineType(String, TypeAttributes) : TypeBuilder;
型名、属性、および定義された型によって拡張される型を指定して、 TypeBuilder を構築します。
[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type) As TypeBuilder
[C#] public TypeBuilder DefineType(string, TypeAttributes, Type);
[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*);
[JScript] public function DefineType(String, TypeAttributes, Type) : TypeBuilder;
型名、属性、定義された型によって拡張される型、および型の合計サイズを指定して、 TypeBuilder を構築します。
[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type, Integer) As TypeBuilder
[C#] public TypeBuilder DefineType(string, TypeAttributes, Type, int);
[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*, int);
[JScript] public function DefineType(String, TypeAttributes, Type, int) : TypeBuilder;
型名、属性、定義された型によって拡張される型、および型のパッキング サイズを指定して、 TypeBuilder を構築します。
[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type, PackingSize) As TypeBuilder
[C#] public TypeBuilder DefineType(string, TypeAttributes, Type, PackingSize);
[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*, PackingSize);
[JScript] public function DefineType(String, TypeAttributes, Type, PackingSize) : TypeBuilder;
型名、属性、定義された型によって拡張される型、および定義された型によって実装されるインターフェイスを指定して、 TypeBuilder を構築します。
[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type, Type()) As TypeBuilder
[C#] public TypeBuilder DefineType(string, TypeAttributes, Type, Type[]);
[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*, Type[]);
[JScript] public function DefineType(String, TypeAttributes, Type, Type[]) : TypeBuilder;
型名、属性、定義された型によって拡張される型、定義された型のパッキング サイズ、および定義された型の合計サイズを指定して、 TypeBuilder を構築します。
[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type, PackingSize, Integer) As TypeBuilder
[C#] public TypeBuilder DefineType(string, TypeAttributes, Type, PackingSize, int);
[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*, PackingSize, int);
[JScript] public function DefineType(String, TypeAttributes, Type, PackingSize, int) : TypeBuilder;
使用例
[Visual Basic, C#, C++] 現在の動的モジュールで CreateType を使用して TypeBuilder を生成し、型を作成し、アセンブリを保存する例を次に示します。
[Visual Basic, C#, C++] メモ ここでは、DefineType のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")
[C#]
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
"assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );
[C++]
AssemblyName* asmname = new AssemblyName();
asmname->Name = S"assemfilename.exe";
AssemblyBuilder* asmbuild = System::Threading::Thread::GetDomain()->
DefineDynamicAssembly(asmname, AssemblyBuilderAccess::RunAndSave);
ModuleBuilder* modbuild = asmbuild->DefineDynamicModule( S"modulename",
S"assemfilename.exe" );
TypeBuilder* typebuild1 = modbuild->DefineType( S"typename" );
typebuild1->CreateType();
asmbuild->Save( S"assemfilename.exe" );
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
参照
ModuleBuilder クラス | ModuleBuilder メンバ | System.Reflection.Emit 名前空間