ModuleBuilder.DefineType Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает TypeBuilder. Чтобы определить тип значения, определите тип, производный от ValueType.
Перегрузки
| Имя | Описание |
|---|---|
| DefineType(String, TypeAttributes, Type, Type[]) |
Создает заданное |
| DefineType(String, TypeAttributes, Type, PackingSize, Int32) |
|
| DefineType(String, TypeAttributes, Type, PackingSize) |
Создает заданное |
| DefineType(String, TypeAttributes) |
Создает заданное |
| DefineType(String, TypeAttributes, Type) |
Создает заданное |
| DefineType(String, TypeAttributes, Type, Int32) |
Создает заданное |
| DefineType(String) |
|
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")
Комментарии
Имена типов должны быть уникальными в сборке. Нельзя иметь два типа с одинаковым именем в двух разных модулях сборки.