ModuleBuilder.DefineType Метод

Определение

Создает TypeBuilder. Чтобы определить тип значения, определите тип, производный от ValueType.

Перегрузки

Имя Описание
DefineType(String, TypeAttributes, Type, Type[])

Создает заданное TypeBuilder имя типа, атрибуты, тип, который расширяет определенный тип, и интерфейсы, которые реализует определенный тип.

DefineType(String, TypeAttributes, Type, PackingSize, Int32)

TypeBuilder Создает заданное имя типа, атрибуты, тип, который расширяет определенный тип, размер упаковки определенного типа и общий размер определенного типа.

DefineType(String, TypeAttributes, Type, PackingSize)

Создает заданное TypeBuilder имя типа, атрибуты, тип, который расширяет определенный тип, и размер упаковки типа.

DefineType(String, TypeAttributes)

Создает заданное TypeBuilder имя типа и атрибуты типа.

DefineType(String, TypeAttributes, Type)

Создает заданное TypeBuilder имя типа, его атрибуты и тип, который расширяет определенный тип.

DefineType(String, TypeAttributes, Type, Int32)

Создает заданное TypeBuilder имя типа, атрибуты, тип, который расширяет определенный тип, и общий размер типа.

DefineType(String)

TypeBuilder Создает частный тип с указанным именем в этом модуле.

DefineType(String, TypeAttributes, Type, Type[])

Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs

Создает заданное TypeBuilder имя типа, атрибуты, тип, который расширяет определенный тип, и интерфейсы, которые реализует определенный тип.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent, cli::array <Type ^> ^ interfaces);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type? parent, Type[]? interfaces);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type parent, Type[] interfaces);
[System.Runtime.InteropServices.ComVisible(true)]
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type parent, Type[] interfaces);
member this.DefineType : string * System.Reflection.TypeAttributes * Type * Type[] -> System.Reflection.Emit.TypeBuilder
[<System.Runtime.InteropServices.ComVisible(true)>]
member this.DefineType : string * System.Reflection.TypeAttributes * Type * Type[] -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type, interfaces As Type()) As TypeBuilder

Параметры

name
String

Полный путь типа. name не может содержать внедренные значения NULL.

attr
TypeAttributes

Атрибуты, связанные с типом.

parent
Type

Тип, который расширяет определенный тип.

interfaces
Type[]

Список интерфейсов, реализуемых типом.

Возвращаемое значение

Созданный TypeBuilder со всеми запрошенными атрибутами.

Атрибуты

Исключения

Тип с заданным именем существует в родительской сборке этого модуля.

–или–

Атрибуты вложенных типов задаются в типе, который не вложен.

name равно null.

Примеры

В следующем примере создается динамический TypeBuilder модуль в текущем динамическом модуле CreateType, выполняется сборка и завершается тип и сохраняется сборка.

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" );
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")

Комментарии

Имена типов должны быть уникальными в сборке. Нельзя иметь два типа с одинаковым именем в двух разных модулях сборки.

Применяется к

DefineType(String, TypeAttributes, Type, PackingSize, Int32)

Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs

TypeBuilder Создает заданное имя типа, атрибуты, тип, который расширяет определенный тип, размер упаковки определенного типа и общий размер определенного типа.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent, System::Reflection::Emit::PackingSize packingSize, int typesize);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type? parent, System.Reflection.Emit.PackingSize packingSize, int typesize);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type parent, System.Reflection.Emit.PackingSize packingSize, int typesize);
member this.DefineType : string * System.Reflection.TypeAttributes * Type * System.Reflection.Emit.PackingSize * int -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type, packingSize As PackingSize, typesize As Integer) As TypeBuilder

Параметры

name
String

Полный путь типа. name не может содержать внедренные значения NULL.

attr
TypeAttributes

Атрибуты определенного типа.

parent
Type

Тип, который расширяет определенный тип.

packingSize
PackingSize

Размер упаковки типа.

typesize
Int32

Общий размер типа.

Возвращаемое значение

Созданный TypeBuilder со всеми запрошенными атрибутами.

Исключения

Тип с заданным именем существует в родительской сборке этого модуля.

–или–

Атрибуты вложенных типов задаются в типе, который не вложен.

name равно null.

Примеры

В следующем примере создается динамический TypeBuilder модуль в текущем динамическом модуле CreateType, выполняется сборка и завершается тип и сохраняется сборка.

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" );
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")

Комментарии

Имена типов должны быть уникальными в сборке. Нельзя иметь два типа с одинаковым именем в двух разных модулях сборки.

Применяется к

DefineType(String, TypeAttributes, Type, PackingSize)

Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs

Создает заданное TypeBuilder имя типа, атрибуты, тип, который расширяет определенный тип, и размер упаковки типа.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent, System::Reflection::Emit::PackingSize packsize);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type? parent, System.Reflection.Emit.PackingSize packsize);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type parent, System.Reflection.Emit.PackingSize packsize);
member this.DefineType : string * System.Reflection.TypeAttributes * Type * System.Reflection.Emit.PackingSize -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type, packsize As PackingSize) As TypeBuilder

Параметры

name
String

Полный путь типа. name не может содержать внедренные значения NULL.

attr
TypeAttributes

Атрибуты определенного типа.

parent
Type

Тип, который расширяет определенный тип.

packsize
PackingSize

Размер упаковки типа.

Возвращаемое значение

Объект TypeBuilder.

Исключения

Тип с заданным именем существует в родительской сборке этого модуля.

–или–

Атрибуты вложенных типов задаются в типе, который не вложен.

name равно null.

Примеры

В следующем примере создается динамический TypeBuilder модуль в текущем динамическом модуле CreateType, выполняется сборка и завершается тип и сохраняется сборка.

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" );
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")

Комментарии

Имена типов должны быть уникальными в сборке. Нельзя иметь два типа с одинаковым именем в двух разных модулях сборки.

Применяется к

DefineType(String, TypeAttributes)

Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs

Создает заданное TypeBuilder имя типа и атрибуты типа.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr);
member this.DefineType : string * System.Reflection.TypeAttributes -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes) As TypeBuilder

Параметры

name
String

Полный путь типа. name не может содержать внедренные значения NULL.

attr
TypeAttributes

Атрибуты определенного типа.

Возвращаемое значение

Созданный TypeBuilder со всеми запрошенными атрибутами.

Исключения

Тип с заданным именем существует в родительской сборке этого модуля.

–или–

Атрибуты вложенных типов задаются в типе, который не вложен.

name равно null.

Примеры

В следующем примере создается динамический TypeBuilder модуль в текущем динамическом модуле CreateType, выполняется сборка и завершается тип и сохраняется сборка.

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" );
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")

Комментарии

Имена типов должны быть уникальными в сборке. Нельзя иметь два типа с одинаковым именем в двух разных модулях сборки.

Применяется к

DefineType(String, TypeAttributes, Type)

Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs

Создает заданное TypeBuilder имя типа, его атрибуты и тип, который расширяет определенный тип.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type? parent);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type parent);
member this.DefineType : string * System.Reflection.TypeAttributes * Type -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type) As TypeBuilder

Параметры

name
String

Полный путь типа. name не может содержать внедренные значения NULL.

attr
TypeAttributes

Атрибут, связанный с типом.

parent
Type

Тип, который расширяет определенный тип.

Возвращаемое значение

Созданный TypeBuilder со всеми запрошенными атрибутами.

Исключения

Тип с заданным именем существует в родительской сборке этого модуля.

–или–

Атрибуты вложенных типов задаются в типе, который не вложен.

name равно null.

Примеры

В следующем примере создается динамический TypeBuilder модуль в текущем динамическом модуле CreateType, выполняется сборка и завершается тип и сохраняется сборка.

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" );
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")

Комментарии

Имена типов должны быть уникальными в сборке. Нельзя иметь два типа с одинаковым именем в двух разных модулях сборки.

Применяется к

DefineType(String, TypeAttributes, Type, Int32)

Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs

Создает заданное TypeBuilder имя типа, атрибуты, тип, который расширяет определенный тип, и общий размер типа.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name, System::Reflection::TypeAttributes attr, Type ^ parent, int typesize);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type? parent, int typesize);
public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, Type parent, int typesize);
member this.DefineType : string * System.Reflection.TypeAttributes * Type * int -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String, attr As TypeAttributes, parent As Type, typesize As Integer) As TypeBuilder

Параметры

name
String

Полный путь типа. name не может содержать внедренные значения NULL.

attr
TypeAttributes

Атрибуты определенного типа.

parent
Type

Тип, который расширяет определенный тип.

typesize
Int32

Общий размер типа.

Возвращаемое значение

Объект TypeBuilder.

Исключения

Тип с заданным именем существует в родительской сборке этого модуля.

–или–

Атрибуты вложенных типов задаются в типе, который не вложен.

name равно null.

Примеры

В следующем примере создается динамический TypeBuilder модуль в текущем динамическом модуле CreateType, выполняется сборка и завершается тип и сохраняется сборка.

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" );
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")

Комментарии

Имена типов должны быть уникальными в сборке. Запрещено иметь два типа с одинаковым именем в двух разных модулях сборки.

Применяется к

DefineType(String)

Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs
Исходный код:
ModuleBuilder.cs

TypeBuilder Создает частный тип с указанным именем в этом модуле.

public:
 System::Reflection::Emit::TypeBuilder ^ DefineType(System::String ^ name);
public System.Reflection.Emit.TypeBuilder DefineType(string name);
member this.DefineType : string -> System.Reflection.Emit.TypeBuilder
Public Function DefineType (name As String) As TypeBuilder

Параметры

name
String

Полный путь типа, включая пространство имен. name не может содержать внедренные значения NULL.

Возвращаемое значение

Закрытый тип с указанным именем.

Исключения

Тип с заданным именем существует в родительской сборке этого модуля.

–или–

Атрибуты вложенных типов задаются в типе, который не вложен.

name равно null.

Примеры

В следующем примере создается динамический TypeBuilder модуль в текущем динамическом модуле CreateType, выполняется сборка и завершается тип и сохраняется сборка.

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" );
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")

Комментарии

Имена типов должны быть уникальными в сборке. Нельзя иметь два типа с одинаковым именем в двух разных модулях сборки.

Применяется к