TypeBuilder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет и создает новые экземпляры классов во время выполнения.
public ref class TypeBuilder sealed : Type
public ref class TypeBuilder sealed : System::Reflection::TypeInfo
public ref class TypeBuilder abstract : System::Reflection::TypeInfo
public ref class TypeBuilder sealed : Type, System::Runtime::InteropServices::_TypeBuilder
public ref class TypeBuilder sealed : System::Reflection::TypeInfo, System::Runtime::InteropServices::_TypeBuilder
public sealed class TypeBuilder : Type
public sealed class TypeBuilder : System.Reflection.TypeInfo
public abstract class TypeBuilder : System.Reflection.TypeInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class TypeBuilder : Type, System.Runtime.InteropServices._TypeBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class TypeBuilder : Type, System.Runtime.InteropServices._TypeBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class TypeBuilder : System.Reflection.TypeInfo, System.Runtime.InteropServices._TypeBuilder
type TypeBuilder = class
inherit Type
type TypeBuilder = class
inherit TypeInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type TypeBuilder = class
inherit Type
interface _TypeBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeBuilder = class
inherit Type
interface _TypeBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeBuilder = class
inherit TypeInfo
interface _TypeBuilder
Public NotInheritable Class TypeBuilder
Inherits Type
Public NotInheritable Class TypeBuilder
Inherits TypeInfo
Public MustInherit Class TypeBuilder
Inherits TypeInfo
Public NotInheritable Class TypeBuilder
Inherits Type
Implements _TypeBuilder
Public NotInheritable Class TypeBuilder
Inherits TypeInfo
Implements _TypeBuilder
- Наследование
- Наследование
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере кода показано, как определить и использовать динамическую сборку. Пример сборки содержит один тип, MyDynamicType
, который имеет частное поле, свойство, которое получает и задает частное поле, конструкторы, инициализирующие частное поле, и метод, который умножает предоставленное пользователем число на значение частного поля и возвращает результат.
using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
void main()
{
// This code creates an assembly that contains one type,
// named "MyDynamicType", that has a private field, a property
// that gets and sets the private field, constructors that
// initialize the private field, and a method that multiplies
// a user-supplied number by the private field value and returns
// the result. In Visual C++ the type might look like this:
/*
public ref class MyDynamicType
{
private:
int m_number;
public:
MyDynamicType() : m_number(42) {};
MyDynamicType(int initNumber) : m_number(initNumber) {};
property int Number
{
int get() { return m_number; }
void set(int value) { m_number = value; }
}
int MyMethod(int multiplier)
{
return m_number * multiplier;
}
};
*/
AssemblyName^ aName = gcnew AssemblyName("DynamicAssemblyExample");
AssemblyBuilder^ ab =
AssemblyBuilder::DefineDynamicAssembly(
aName,
AssemblyBuilderAccess::Run);
// The module name is usually the same as the assembly name
ModuleBuilder^ mb =
ab->DefineDynamicModule(aName->Name);
TypeBuilder^ tb = mb->DefineType(
"MyDynamicType",
TypeAttributes::Public);
// Add a private field of type int (Int32).
FieldBuilder^ fbNumber = tb->DefineField(
"m_number",
int::typeid,
FieldAttributes::Private);
// Define a constructor that takes an integer argument and
// stores it in the private field.
array<Type^>^ parameterTypes = { int::typeid };
ConstructorBuilder^ ctor1 = tb->DefineConstructor(
MethodAttributes::Public,
CallingConventions::Standard,
parameterTypes);
ILGenerator^ ctor1IL = ctor1->GetILGenerator();
// For a constructor, argument zero is a reference to the new
// instance. Push it on the stack before calling the base
// class constructor. Specify the default constructor of the
// base class (System::Object) by passing an empty array of
// types (Type::EmptyTypes) to GetConstructor.
ctor1IL->Emit(OpCodes::Ldarg_0);
ctor1IL->Emit(OpCodes::Call,
Object::typeid->GetConstructor(Type::EmptyTypes));
// Push the instance on the stack before pushing the argument
// that is to be assigned to the private field m_number.
ctor1IL->Emit(OpCodes::Ldarg_0);
ctor1IL->Emit(OpCodes::Ldarg_1);
ctor1IL->Emit(OpCodes::Stfld, fbNumber);
ctor1IL->Emit(OpCodes::Ret);
// Define a default constructor that supplies a default value
// for the private field. For parameter types, pass the empty
// array of types or pass nullptr.
ConstructorBuilder^ ctor0 = tb->DefineConstructor(
MethodAttributes::Public,
CallingConventions::Standard,
Type::EmptyTypes);
ILGenerator^ ctor0IL = ctor0->GetILGenerator();
ctor0IL->Emit(OpCodes::Ldarg_0);
ctor0IL->Emit(OpCodes::Call,
Object::typeid->GetConstructor(Type::EmptyTypes));
// For a constructor, argument zero is a reference to the new
// instance. Push it on the stack before pushing the default
// value on the stack.
ctor0IL->Emit(OpCodes::Ldarg_0);
ctor0IL->Emit(OpCodes::Ldc_I4_S, 42);
ctor0IL->Emit(OpCodes::Stfld, fbNumber);
ctor0IL->Emit(OpCodes::Ret);
// Define a property named Number that gets and sets the private
// field.
//
// The last argument of DefineProperty is nullptr, because the
// property has no parameters. (If you don't specify nullptr, you must
// specify an array of Type objects. For a parameterless property,
// use the built-in array with no elements: Type::EmptyTypes)
PropertyBuilder^ pbNumber = tb->DefineProperty(
"Number",
PropertyAttributes::HasDefault,
int::typeid,
nullptr);
// The property "set" and property "get" methods require a special
// set of attributes.
MethodAttributes getSetAttr = MethodAttributes::Public |
MethodAttributes::SpecialName | MethodAttributes::HideBySig;
// Define the "get" accessor method for Number. The method returns
// an integer and has no arguments. (Note that nullptr could be
// used instead of Types::EmptyTypes)
MethodBuilder^ mbNumberGetAccessor = tb->DefineMethod(
"get_Number",
getSetAttr,
int::typeid,
Type::EmptyTypes);
ILGenerator^ numberGetIL = mbNumberGetAccessor->GetILGenerator();
// For an instance property, argument zero is the instance. Load the
// instance, then load the private field and return, leaving the
// field value on the stack.
numberGetIL->Emit(OpCodes::Ldarg_0);
numberGetIL->Emit(OpCodes::Ldfld, fbNumber);
numberGetIL->Emit(OpCodes::Ret);
// Define the "set" accessor method for Number, which has no return
// type and takes one argument of type int (Int32).
MethodBuilder^ mbNumberSetAccessor = tb->DefineMethod(
"set_Number",
getSetAttr,
nullptr,
gcnew array<Type^> { int::typeid });
ILGenerator^ numberSetIL = mbNumberSetAccessor->GetILGenerator();
// Load the instance and then the numeric argument, then store the
// argument in the field.
numberSetIL->Emit(OpCodes::Ldarg_0);
numberSetIL->Emit(OpCodes::Ldarg_1);
numberSetIL->Emit(OpCodes::Stfld, fbNumber);
numberSetIL->Emit(OpCodes::Ret);
// Last, map the "get" and "set" accessor methods to the
// PropertyBuilder. The property is now complete.
pbNumber->SetGetMethod(mbNumberGetAccessor);
pbNumber->SetSetMethod(mbNumberSetAccessor);
// Define a method that accepts an integer argument and returns
// the product of that integer and the private field m_number. This
// time, the array of parameter types is created on the fly.
MethodBuilder^ meth = tb->DefineMethod(
"MyMethod",
MethodAttributes::Public,
int::typeid,
gcnew array<Type^> { int::typeid });
ILGenerator^ methIL = meth->GetILGenerator();
// To retrieve the private instance field, load the instance it
// belongs to (argument zero). After loading the field, load the
// argument one and then multiply. Return from the method with
// the return value (the product of the two numbers) on the
// execution stack.
methIL->Emit(OpCodes::Ldarg_0);
methIL->Emit(OpCodes::Ldfld, fbNumber);
methIL->Emit(OpCodes::Ldarg_1);
methIL->Emit(OpCodes::Mul);
methIL->Emit(OpCodes::Ret);
// Finish the type->
Type^ t = tb->CreateType();
// Because AssemblyBuilderAccess includes Run, the code can be
// executed immediately. Start by getting reflection objects for
// the method and the property.
MethodInfo^ mi = t->GetMethod("MyMethod");
PropertyInfo^ pi = t->GetProperty("Number");
// Create an instance of MyDynamicType using the default
// constructor.
Object^ o1 = Activator::CreateInstance(t);
// Display the value of the property, then change it to 127 and
// display it again. Use nullptr to indicate that the property
// has no index.
Console::WriteLine("o1->Number: {0}", pi->GetValue(o1, nullptr));
pi->SetValue(o1, 127, nullptr);
Console::WriteLine("o1->Number: {0}", pi->GetValue(o1, nullptr));
// Call MyMethod, passing 22, and display the return value, 22
// times 127. Arguments must be passed as an array, even when
// there is only one.
array<Object^>^ arguments = { 22 };
Console::WriteLine("o1->MyMethod(22): {0}",
mi->Invoke(o1, arguments));
// Create an instance of MyDynamicType using the constructor
// that specifies m_Number. The constructor is identified by
// matching the types in the argument array. In this case,
// the argument array is created on the fly. Display the
// property value.
Object^ o2 = Activator::CreateInstance(t,
gcnew array<Object^> { 5280 });
Console::WriteLine("o2->Number: {0}", pi->GetValue(o2, nullptr));
};
/* This code produces the following output:
o1->Number: 42
o1->Number: 127
o1->MyMethod(22): 2794
o2->Number: 5280
*/
using System;
using System.Reflection;
using System.Reflection.Emit;
class DemoAssemblyBuilder
{
public static void Main()
{
// This code creates an assembly that contains one type,
// named "MyDynamicType", that has a private field, a property
// that gets and sets the private field, constructors that
// initialize the private field, and a method that multiplies
// a user-supplied number by the private field value and returns
// the result. In C# the type might look like this:
/*
public class MyDynamicType
{
private int m_number;
public MyDynamicType() : this(42) {}
public MyDynamicType(int initNumber)
{
m_number = initNumber;
}
public int Number
{
get { return m_number; }
set { m_number = value; }
}
public int MyMethod(int multiplier)
{
return m_number * multiplier;
}
}
*/
var aName = new AssemblyName("DynamicAssemblyExample");
AssemblyBuilder ab =
AssemblyBuilder.DefineDynamicAssembly(
aName,
AssemblyBuilderAccess.Run);
// The module name is usually the same as the assembly name.
ModuleBuilder mb = ab.DefineDynamicModule(aName.Name ?? "DynamicAssemblyExample");
TypeBuilder tb = mb.DefineType(
"MyDynamicType",
TypeAttributes.Public);
// Add a private field of type int (Int32).
FieldBuilder fbNumber = tb.DefineField(
"m_number",
typeof(int),
FieldAttributes.Private);
// Define a constructor that takes an integer argument and
// stores it in the private field.
Type[] parameterTypes = { typeof(int) };
ConstructorBuilder ctor1 = tb.DefineConstructor(
MethodAttributes.Public,
CallingConventions.Standard,
parameterTypes);
ILGenerator ctor1IL = ctor1.GetILGenerator();
// For a constructor, argument zero is a reference to the new
// instance. Push it on the stack before calling the base
// class constructor. Specify the default constructor of the
// base class (System.Object) by passing an empty array of
// types (Type.EmptyTypes) to GetConstructor.
ctor1IL.Emit(OpCodes.Ldarg_0);
ConstructorInfo? ci = typeof(object).GetConstructor(Type.EmptyTypes);
ctor1IL.Emit(OpCodes.Call, ci!);
// Push the instance on the stack before pushing the argument
// that is to be assigned to the private field m_number.
ctor1IL.Emit(OpCodes.Ldarg_0);
ctor1IL.Emit(OpCodes.Ldarg_1);
ctor1IL.Emit(OpCodes.Stfld, fbNumber);
ctor1IL.Emit(OpCodes.Ret);
// Define a default constructor that supplies a default value
// for the private field. For parameter types, pass the empty
// array of types or pass null.
ConstructorBuilder ctor0 = tb.DefineConstructor(
MethodAttributes.Public,
CallingConventions.Standard,
Type.EmptyTypes);
ILGenerator ctor0IL = ctor0.GetILGenerator();
// For a constructor, argument zero is a reference to the new
// instance. Push it on the stack before pushing the default
// value on the stack, then call constructor ctor1.
ctor0IL.Emit(OpCodes.Ldarg_0);
ctor0IL.Emit(OpCodes.Ldc_I4_S, 42);
ctor0IL.Emit(OpCodes.Call, ctor1);
ctor0IL.Emit(OpCodes.Ret);
// Define a property named Number that gets and sets the private
// field.
//
// The last argument of DefineProperty is null, because the
// property has no parameters. (If you don't specify null, you must
// specify an array of Type objects. For a parameterless property,
// use the built-in array with no elements: Type.EmptyTypes)
PropertyBuilder pbNumber = tb.DefineProperty(
"Number",
PropertyAttributes.HasDefault,
typeof(int),
null);
// The property "set" and property "get" methods require a special
// set of attributes.
MethodAttributes getSetAttr = MethodAttributes.Public |
MethodAttributes.SpecialName | MethodAttributes.HideBySig;
// Define the "get" accessor method for Number. The method returns
// an integer and has no arguments. (Note that null could be
// used instead of Types.EmptyTypes)
MethodBuilder mbNumberGetAccessor = tb.DefineMethod(
"get_Number",
getSetAttr,
typeof(int),
Type.EmptyTypes);
ILGenerator numberGetIL = mbNumberGetAccessor.GetILGenerator();
// For an instance property, argument zero is the instance. Load the
// instance, then load the private field and return, leaving the
// field value on the stack.
numberGetIL.Emit(OpCodes.Ldarg_0);
numberGetIL.Emit(OpCodes.Ldfld, fbNumber);
numberGetIL.Emit(OpCodes.Ret);
// Define the "set" accessor method for Number, which has no return
// type and takes one argument of type int (Int32).
MethodBuilder mbNumberSetAccessor = tb.DefineMethod(
"set_Number",
getSetAttr,
null,
new Type[] { typeof(int) });
ILGenerator numberSetIL = mbNumberSetAccessor.GetILGenerator();
// Load the instance and then the numeric argument, then store the
// argument in the field.
numberSetIL.Emit(OpCodes.Ldarg_0);
numberSetIL.Emit(OpCodes.Ldarg_1);
numberSetIL.Emit(OpCodes.Stfld, fbNumber);
numberSetIL.Emit(OpCodes.Ret);
// Last, map the "get" and "set" accessor methods to the
// PropertyBuilder. The property is now complete.
pbNumber.SetGetMethod(mbNumberGetAccessor);
pbNumber.SetSetMethod(mbNumberSetAccessor);
// Define a method that accepts an integer argument and returns
// the product of that integer and the private field m_number. This
// time, the array of parameter types is created on the fly.
MethodBuilder meth = tb.DefineMethod(
"MyMethod",
MethodAttributes.Public,
typeof(int),
new Type[] { typeof(int) });
ILGenerator methIL = meth.GetILGenerator();
// To retrieve the private instance field, load the instance it
// belongs to (argument zero). After loading the field, load the
// argument one and then multiply. Return from the method with
// the return value (the product of the two numbers) on the
// execution stack.
methIL.Emit(OpCodes.Ldarg_0);
methIL.Emit(OpCodes.Ldfld, fbNumber);
methIL.Emit(OpCodes.Ldarg_1);
methIL.Emit(OpCodes.Mul);
methIL.Emit(OpCodes.Ret);
// Finish the type.
Type? t = tb.CreateType();
// Because AssemblyBuilderAccess includes Run, the code can be
// executed immediately. Start by getting reflection objects for
// the method and the property.
MethodInfo? mi = t?.GetMethod("MyMethod");
PropertyInfo? pi = t?.GetProperty("Number");
// Create an instance of MyDynamicType using the default
// constructor.
object? o1 = null;
if (t is not null)
o1 = Activator.CreateInstance(t);
// Display the value of the property, then change it to 127 and
// display it again. Use null to indicate that the property
// has no index.
Console.WriteLine("o1.Number: {0}", pi?.GetValue(o1, null));
pi?.SetValue(o1, 127, null);
Console.WriteLine("o1.Number: {0}", pi?.GetValue(o1, null));
// Call MyMethod, passing 22, and display the return value, 22
// times 127. Arguments must be passed as an array, even when
// there is only one.
object[] arguments = { 22 };
Console.WriteLine("o1.MyMethod(22): {0}",
mi?.Invoke(o1, arguments));
// Create an instance of MyDynamicType using the constructor
// that specifies m_Number. The constructor is identified by
// matching the types in the argument array. In this case,
// the argument array is created on the fly. Display the
// property value.
object? o2 = null;
if (t is not null)
o2 = Activator.CreateInstance(t, new object[] { 5280 });
Console.WriteLine("o2.Number: {0}", pi?.GetValue(o2, null));
}
}
/* This code produces the following output:
o1.Number: 42
o1.Number: 127
o1.MyMethod(22): 2794
o2.Number: 5280
*/
Imports System.Reflection
Imports System.Reflection.Emit
Class DemoAssemblyBuilder
Public Shared Sub Main()
' This code creates an assembly that contains one type,
' named "MyDynamicType", that has a private field, a property
' that gets and sets the private field, constructors that
' initialize the private field, and a method that multiplies
' a user-supplied number by the private field value and returns
' the result. The code might look like this in Visual Basic:
'
'Public Class MyDynamicType
' Private m_number As Integer
'
' Public Sub New()
' Me.New(42)
' End Sub
'
' Public Sub New(ByVal initNumber As Integer)
' m_number = initNumber
' End Sub
'
' Public Property Number As Integer
' Get
' Return m_number
' End Get
' Set
' m_Number = Value
' End Set
' End Property
'
' Public Function MyMethod(ByVal multiplier As Integer) As Integer
' Return m_Number * multiplier
' End Function
'End Class
Dim aName As New AssemblyName("DynamicAssemblyExample")
Dim ab As AssemblyBuilder = _
AssemblyBuilder.DefineDynamicAssembly( _
aName, _
AssemblyBuilderAccess.Run)
' The module name is usually the same as the assembly name.
Dim mb As ModuleBuilder = ab.DefineDynamicModule( _
aName.Name)
Dim tb As TypeBuilder = _
mb.DefineType("MyDynamicType", TypeAttributes.Public)
' Add a private field of type Integer (Int32).
Dim fbNumber As FieldBuilder = tb.DefineField( _
"m_number", _
GetType(Integer), _
FieldAttributes.Private)
' Define a constructor that takes an integer argument and
' stores it in the private field.
Dim parameterTypes() As Type = { GetType(Integer) }
Dim ctor1 As ConstructorBuilder = _
tb.DefineConstructor( _
MethodAttributes.Public, _
CallingConventions.Standard, _
parameterTypes)
Dim ctor1IL As ILGenerator = ctor1.GetILGenerator()
' For a constructor, argument zero is a reference to the new
' instance. Push it on the stack before calling the base
' class constructor. Specify the default constructor of the
' base class (System.Object) by passing an empty array of
' types (Type.EmptyTypes) to GetConstructor.
ctor1IL.Emit(OpCodes.Ldarg_0)
ctor1IL.Emit(OpCodes.Call, _
GetType(Object).GetConstructor(Type.EmptyTypes))
' Push the instance on the stack before pushing the argument
' that is to be assigned to the private field m_number.
ctor1IL.Emit(OpCodes.Ldarg_0)
ctor1IL.Emit(OpCodes.Ldarg_1)
ctor1IL.Emit(OpCodes.Stfld, fbNumber)
ctor1IL.Emit(OpCodes.Ret)
' Define a default constructor that supplies a default value
' for the private field. For parameter types, pass the empty
' array of types or pass Nothing.
Dim ctor0 As ConstructorBuilder = tb.DefineConstructor( _
MethodAttributes.Public, _
CallingConventions.Standard, _
Type.EmptyTypes)
Dim ctor0IL As ILGenerator = ctor0.GetILGenerator()
' For a constructor, argument zero is a reference to the new
' instance. Push it on the stack before pushing the default
' value on the stack, then call constructor ctor1.
ctor0IL.Emit(OpCodes.Ldarg_0)
ctor0IL.Emit(OpCodes.Ldc_I4_S, 42)
ctor0IL.Emit(OpCodes.Call, ctor1)
ctor0IL.Emit(OpCodes.Ret)
' Define a property named Number that gets and sets the private
' field.
'
' The last argument of DefineProperty is Nothing, because the
' property has no parameters. (If you don't specify Nothing, you must
' specify an array of Type objects. For a parameterless property,
' use the built-in array with no elements: Type.EmptyTypes)
Dim pbNumber As PropertyBuilder = tb.DefineProperty( _
"Number", _
PropertyAttributes.HasDefault, _
GetType(Integer), _
Nothing)
' The property Set and property Get methods require a special
' set of attributes.
Dim getSetAttr As MethodAttributes = _
MethodAttributes.Public Or MethodAttributes.SpecialName _
Or MethodAttributes.HideBySig
' Define the "get" accessor method for Number. The method returns
' an integer and has no arguments. (Note that Nothing could be
' used instead of Types.EmptyTypes)
Dim mbNumberGetAccessor As MethodBuilder = tb.DefineMethod( _
"get_Number", _
getSetAttr, _
GetType(Integer), _
Type.EmptyTypes)
Dim numberGetIL As ILGenerator = mbNumberGetAccessor.GetILGenerator()
' For an instance property, argument zero is the instance. Load the
' instance, then load the private field and return, leaving the
' field value on the stack.
numberGetIL.Emit(OpCodes.Ldarg_0)
numberGetIL.Emit(OpCodes.Ldfld, fbNumber)
numberGetIL.Emit(OpCodes.Ret)
' Define the "set" accessor method for Number, which has no return
' type and takes one argument of type Integer (Int32).
Dim mbNumberSetAccessor As MethodBuilder = _
tb.DefineMethod( _
"set_Number", _
getSetAttr, _
Nothing, _
New Type() { GetType(Integer) })
Dim numberSetIL As ILGenerator = mbNumberSetAccessor.GetILGenerator()
' Load the instance and then the numeric argument, then store the
' argument in the field.
numberSetIL.Emit(OpCodes.Ldarg_0)
numberSetIL.Emit(OpCodes.Ldarg_1)
numberSetIL.Emit(OpCodes.Stfld, fbNumber)
numberSetIL.Emit(OpCodes.Ret)
' Last, map the "get" and "set" accessor methods to the
' PropertyBuilder. The property is now complete.
pbNumber.SetGetMethod(mbNumberGetAccessor)
pbNumber.SetSetMethod(mbNumberSetAccessor)
' Define a method that accepts an integer argument and returns
' the product of that integer and the private field m_number. This
' time, the array of parameter types is created on the fly.
Dim meth As MethodBuilder = tb.DefineMethod( _
"MyMethod", _
MethodAttributes.Public, _
GetType(Integer), _
New Type() { GetType(Integer) })
Dim methIL As ILGenerator = meth.GetILGenerator()
' To retrieve the private instance field, load the instance it
' belongs to (argument zero). After loading the field, load the
' argument one and then multiply. Return from the method with
' the return value (the product of the two numbers) on the
' execution stack.
methIL.Emit(OpCodes.Ldarg_0)
methIL.Emit(OpCodes.Ldfld, fbNumber)
methIL.Emit(OpCodes.Ldarg_1)
methIL.Emit(OpCodes.Mul)
methIL.Emit(OpCodes.Ret)
' Finish the type.
Dim t As Type = tb.CreateType()
' Because AssemblyBuilderAccess includes Run, the code can be
' executed immediately. Start by getting reflection objects for
' the method and the property.
Dim mi As MethodInfo = t.GetMethod("MyMethod")
Dim pi As PropertyInfo = t.GetProperty("Number")
' Create an instance of MyDynamicType using the default
' constructor.
Dim o1 As Object = Activator.CreateInstance(t)
' Display the value of the property, then change it to 127 and
' display it again. Use Nothing to indicate that the property
' has no index.
Console.WriteLine("o1.Number: {0}", pi.GetValue(o1, Nothing))
pi.SetValue(o1, 127, Nothing)
Console.WriteLine("o1.Number: {0}", pi.GetValue(o1, Nothing))
' Call MyMethod, passing 22, and display the return value, 22
' times 127. Arguments must be passed as an array, even when
' there is only one.
Dim arguments() As Object = { 22 }
Console.WriteLine("o1.MyMethod(22): {0}", _
mi.Invoke(o1, arguments))
' Create an instance of MyDynamicType using the constructor
' that specifies m_Number. The constructor is identified by
' matching the types in the argument array. In this case,
' the argument array is created on the fly. Display the
' property value.
Dim o2 As Object = Activator.CreateInstance(t, _
New Object() { 5280 })
Console.WriteLine("o2.Number: {0}", pi.GetValue(o2, Nothing))
End Sub
End Class
' This code produces the following output:
'
'o1.Number: 42
'o1.Number: 127
'o1.MyMethod(22): 2794
'o2.Number: 5280
В следующем примере кода показано, как динамически создать тип с помощью TypeBuilder
.
using namespace System;
using namespace System::Threading;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
Type^ DynamicDotProductGen()
{
Type^ ivType = nullptr;
array<Type^>^temp0 = {int::typeid,int::typeid,int::typeid};
array<Type^>^ctorParams = temp0;
AppDomain^ myDomain = Thread::GetDomain();
AssemblyName^ myAsmName = gcnew AssemblyName;
myAsmName->Name = "IntVectorAsm";
AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( myAsmName, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ IntVectorModule = myAsmBuilder->DefineDynamicModule( "IntVectorModule", "Vector.dll" );
TypeBuilder^ ivTypeBld = IntVectorModule->DefineType( "IntVector", TypeAttributes::Public );
FieldBuilder^ xField = ivTypeBld->DefineField( "x", int::typeid, FieldAttributes::Private );
FieldBuilder^ yField = ivTypeBld->DefineField( "y", int::typeid, FieldAttributes::Private );
FieldBuilder^ zField = ivTypeBld->DefineField( "z", int::typeid, FieldAttributes::Private );
Type^ objType = Type::GetType( "System.Object" );
ConstructorInfo^ objCtor = objType->GetConstructor( gcnew array<Type^>(0) );
ConstructorBuilder^ ivCtor = ivTypeBld->DefineConstructor( MethodAttributes::Public, CallingConventions::Standard, ctorParams );
ILGenerator^ ctorIL = ivCtor->GetILGenerator();
ctorIL->Emit( OpCodes::Ldarg_0 );
ctorIL->Emit( OpCodes::Call, objCtor );
ctorIL->Emit( OpCodes::Ldarg_0 );
ctorIL->Emit( OpCodes::Ldarg_1 );
ctorIL->Emit( OpCodes::Stfld, xField );
ctorIL->Emit( OpCodes::Ldarg_0 );
ctorIL->Emit( OpCodes::Ldarg_2 );
ctorIL->Emit( OpCodes::Stfld, yField );
ctorIL->Emit( OpCodes::Ldarg_0 );
ctorIL->Emit( OpCodes::Ldarg_3 );
ctorIL->Emit( OpCodes::Stfld, zField );
ctorIL->Emit( OpCodes::Ret );
// This method will find the dot product of the stored vector
// with another.
array<Type^>^temp1 = {ivTypeBld};
array<Type^>^dpParams = temp1;
// Here, you create a MethodBuilder containing the
// name, the attributes (public, static, private, and so on),
// the return type (int, in this case), and a array of Type
// indicating the type of each parameter. Since the sole parameter
// is a IntVector, the very class you're creating, you will
// pass in the TypeBuilder (which is derived from Type) instead of
// a Type object for IntVector, avoiding an exception.
// -- This method would be declared in C# as:
// public int DotProduct(IntVector aVector)
MethodBuilder^ dotProductMthd = ivTypeBld->DefineMethod( "DotProduct", MethodAttributes::Public, int::typeid, dpParams );
// A ILGenerator can now be spawned, attached to the MethodBuilder.
ILGenerator^ mthdIL = dotProductMthd->GetILGenerator();
// Here's the body of our function, in MSIL form. We're going to find the
// "dot product" of the current vector instance with the passed vector
// instance. For reference purposes, the equation is:
// (x1 * x2) + (y1 * y2) + (z1 * z2) = the dot product
// First, you'll load the reference to the current instance "this"
// stored in argument 0 (ldarg.0) onto the stack. Ldfld, the subsequent
// instruction, will pop the reference off the stack and look up the
// field "x", specified by the FieldInfo token "xField".
mthdIL->Emit( OpCodes::Ldarg_0 );
mthdIL->Emit( OpCodes::Ldfld, xField );
// That completed, the value stored at field "x" is now atop the stack.
// Now, you'll do the same for the Object reference we passed as a
// parameter, stored in argument 1 (ldarg.1). After Ldfld executed,
// you'll have the value stored in field "x" for the passed instance
// atop the stack.
mthdIL->Emit( OpCodes::Ldarg_1 );
mthdIL->Emit( OpCodes::Ldfld, xField );
// There will now be two values atop the stack - the "x" value for the
// current vector instance, and the "x" value for the passed instance.
// You'll now multiply them, and push the result onto the evaluation stack.
mthdIL->Emit( OpCodes::Mul_Ovf_Un );
// Now, repeat this for the "y" fields of both vectors.
mthdIL->Emit( OpCodes::Ldarg_0 );
mthdIL->Emit( OpCodes::Ldfld, yField );
mthdIL->Emit( OpCodes::Ldarg_1 );
mthdIL->Emit( OpCodes::Ldfld, yField );
mthdIL->Emit( OpCodes::Mul_Ovf_Un );
// At this time, the results of both multiplications should be atop
// the stack. You'll now add them and push the result onto the stack.
mthdIL->Emit( OpCodes::Add_Ovf_Un );
// Multiply both "z" field and push the result onto the stack.
mthdIL->Emit( OpCodes::Ldarg_0 );
mthdIL->Emit( OpCodes::Ldfld, zField );
mthdIL->Emit( OpCodes::Ldarg_1 );
mthdIL->Emit( OpCodes::Ldfld, zField );
mthdIL->Emit( OpCodes::Mul_Ovf_Un );
// Finally, add the result of multiplying the "z" fields with the
// result of the earlier addition, and push the result - the dot product -
// onto the stack.
mthdIL->Emit( OpCodes::Add_Ovf_Un );
// The "ret" opcode will pop the last value from the stack and return it
// to the calling method. You're all done!
mthdIL->Emit( OpCodes::Ret );
ivType = ivTypeBld->CreateType();
return ivType;
}
int main()
{
Type^ IVType = nullptr;
Object^ aVector1 = nullptr;
Object^ aVector2 = nullptr;
array<Type^>^temp2 = {int::typeid,int::typeid,int::typeid};
array<Type^>^aVtypes = temp2;
array<Object^>^temp3 = {10,10,10};
array<Object^>^aVargs1 = temp3;
array<Object^>^temp4 = {20,20,20};
array<Object^>^aVargs2 = temp4;
// Call the method to build our dynamic class.
IVType = DynamicDotProductGen();
Console::WriteLine( "---" );
ConstructorInfo^ myDTctor = IVType->GetConstructor( aVtypes );
aVector1 = myDTctor->Invoke( aVargs1 );
aVector2 = myDTctor->Invoke( aVargs2 );
array<Object^>^passMe = gcnew array<Object^>(1);
passMe[ 0 ] = dynamic_cast<Object^>(aVector2);
Console::WriteLine( "(10, 10, 10) . (20, 20, 20) = {0}", IVType->InvokeMember( "DotProduct", BindingFlags::InvokeMethod, nullptr, aVector1, passMe ) );
}
// +++ OUTPUT +++
// ---
// (10, 10, 10) . (20, 20, 20) = 600
using System;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;
class TestILGenerator
{
public static Type DynamicDotProductGen()
{
Type ivType = null;
Type[] ctorParams = new Type[] { typeof(int),
typeof(int),
typeof(int)};
AppDomain myDomain = Thread.GetDomain();
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "IntVectorAsm";
AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
myAsmName,
AssemblyBuilderAccess.RunAndSave);
ModuleBuilder IntVectorModule = myAsmBuilder.DefineDynamicModule("IntVectorModule",
"Vector.dll");
TypeBuilder ivTypeBld = IntVectorModule.DefineType("IntVector",
TypeAttributes.Public);
FieldBuilder xField = ivTypeBld.DefineField("x", typeof(int),
FieldAttributes.Private);
FieldBuilder yField = ivTypeBld.DefineField("y", typeof(int),
FieldAttributes.Private);
FieldBuilder zField = ivTypeBld.DefineField("z", typeof(int),
FieldAttributes.Private);
Type objType = Type.GetType("System.Object");
ConstructorInfo objCtor = objType.GetConstructor(new Type[0]);
ConstructorBuilder ivCtor = ivTypeBld.DefineConstructor(
MethodAttributes.Public,
CallingConventions.Standard,
ctorParams);
ILGenerator ctorIL = ivCtor.GetILGenerator();
ctorIL.Emit(OpCodes.Ldarg_0);
ctorIL.Emit(OpCodes.Call, objCtor);
ctorIL.Emit(OpCodes.Ldarg_0);
ctorIL.Emit(OpCodes.Ldarg_1);
ctorIL.Emit(OpCodes.Stfld, xField);
ctorIL.Emit(OpCodes.Ldarg_0);
ctorIL.Emit(OpCodes.Ldarg_2);
ctorIL.Emit(OpCodes.Stfld, yField);
ctorIL.Emit(OpCodes.Ldarg_0);
ctorIL.Emit(OpCodes.Ldarg_3);
ctorIL.Emit(OpCodes.Stfld, zField);
ctorIL.Emit(OpCodes.Ret);
// This method will find the dot product of the stored vector
// with another.
Type[] dpParams = new Type[] { ivTypeBld };
// Here, you create a MethodBuilder containing the
// name, the attributes (public, static, private, and so on),
// the return type (int, in this case), and a array of Type
// indicating the type of each parameter. Since the sole parameter
// is a IntVector, the very class you're creating, you will
// pass in the TypeBuilder (which is derived from Type) instead of
// a Type object for IntVector, avoiding an exception.
// -- This method would be declared in C# as:
// public int DotProduct(IntVector aVector)
MethodBuilder dotProductMthd = ivTypeBld.DefineMethod(
"DotProduct",
MethodAttributes.Public,
typeof(int),
dpParams);
// A ILGenerator can now be spawned, attached to the MethodBuilder.
ILGenerator mthdIL = dotProductMthd.GetILGenerator();
// Here's the body of our function, in MSIL form. We're going to find the
// "dot product" of the current vector instance with the passed vector
// instance. For reference purposes, the equation is:
// (x1 * x2) + (y1 * y2) + (z1 * z2) = the dot product
// First, you'll load the reference to the current instance "this"
// stored in argument 0 (ldarg.0) onto the stack. Ldfld, the subsequent
// instruction, will pop the reference off the stack and look up the
// field "x", specified by the FieldInfo token "xField".
mthdIL.Emit(OpCodes.Ldarg_0);
mthdIL.Emit(OpCodes.Ldfld, xField);
// That completed, the value stored at field "x" is now atop the stack.
// Now, you'll do the same for the object reference we passed as a
// parameter, stored in argument 1 (ldarg.1). After Ldfld executed,
// you'll have the value stored in field "x" for the passed instance
// atop the stack.
mthdIL.Emit(OpCodes.Ldarg_1);
mthdIL.Emit(OpCodes.Ldfld, xField);
// There will now be two values atop the stack - the "x" value for the
// current vector instance, and the "x" value for the passed instance.
// You'll now multiply them, and push the result onto the evaluation stack.
mthdIL.Emit(OpCodes.Mul_Ovf_Un);
// Now, repeat this for the "y" fields of both vectors.
mthdIL.Emit(OpCodes.Ldarg_0);
mthdIL.Emit(OpCodes.Ldfld, yField);
mthdIL.Emit(OpCodes.Ldarg_1);
mthdIL.Emit(OpCodes.Ldfld, yField);
mthdIL.Emit(OpCodes.Mul_Ovf_Un);
// At this time, the results of both multiplications should be atop
// the stack. You'll now add them and push the result onto the stack.
mthdIL.Emit(OpCodes.Add_Ovf_Un);
// Multiply both "z" field and push the result onto the stack.
mthdIL.Emit(OpCodes.Ldarg_0);
mthdIL.Emit(OpCodes.Ldfld, zField);
mthdIL.Emit(OpCodes.Ldarg_1);
mthdIL.Emit(OpCodes.Ldfld, zField);
mthdIL.Emit(OpCodes.Mul_Ovf_Un);
// Finally, add the result of multiplying the "z" fields with the
// result of the earlier addition, and push the result - the dot product -
// onto the stack.
mthdIL.Emit(OpCodes.Add_Ovf_Un);
// The "ret" opcode will pop the last value from the stack and return it
// to the calling method. You're all done!
mthdIL.Emit(OpCodes.Ret);
ivType = ivTypeBld.CreateType();
return ivType;
}
public static void Main() {
Type IVType = null;
object aVector1 = null;
object aVector2 = null;
Type[] aVtypes = new Type[] {typeof(int), typeof(int), typeof(int)};
object[] aVargs1 = new object[] {10, 10, 10};
object[] aVargs2 = new object[] {20, 20, 20};
// Call the method to build our dynamic class.
IVType = DynamicDotProductGen();
Console.WriteLine("---");
ConstructorInfo myDTctor = IVType.GetConstructor(aVtypes);
aVector1 = myDTctor.Invoke(aVargs1);
aVector2 = myDTctor.Invoke(aVargs2);
object[] passMe = new object[1];
passMe[0] = (object)aVector2;
Console.WriteLine("(10, 10, 10) . (20, 20, 20) = {0}",
IVType.InvokeMember("DotProduct",
BindingFlags.InvokeMethod,
null,
aVector1,
passMe));
// +++ OUTPUT +++
// ---
// (10, 10, 10) . (20, 20, 20) = 600
}
}
Imports System.Threading
Imports System.Reflection
Imports System.Reflection.Emit
_
Class TestILGenerator
Public Shared Function DynamicDotProductGen() As Type
Dim ivType As Type = Nothing
Dim ctorParams() As Type = {GetType(Integer), GetType(Integer), GetType(Integer)}
Dim myDomain As AppDomain = Thread.GetDomain()
Dim myAsmName As New AssemblyName()
myAsmName.Name = "IntVectorAsm"
Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly( _
myAsmName, _
AssemblyBuilderAccess.RunAndSave)
Dim IntVectorModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule( _
"IntVectorModule", _
"Vector.dll")
Dim ivTypeBld As TypeBuilder = IntVectorModule.DefineType("IntVector", TypeAttributes.Public)
Dim xField As FieldBuilder = ivTypeBld.DefineField("x", _
GetType(Integer), _
FieldAttributes.Private)
Dim yField As FieldBuilder = ivTypeBld.DefineField("y", _
GetType(Integer), _
FieldAttributes.Private)
Dim zField As FieldBuilder = ivTypeBld.DefineField("z", _
GetType(Integer), _
FieldAttributes.Private)
Dim objType As Type = Type.GetType("System.Object")
Dim objCtor As ConstructorInfo = objType.GetConstructor(New Type() {})
Dim ivCtor As ConstructorBuilder = ivTypeBld.DefineConstructor( _
MethodAttributes.Public, _
CallingConventions.Standard, _
ctorParams)
Dim ctorIL As ILGenerator = ivCtor.GetILGenerator()
ctorIL.Emit(OpCodes.Ldarg_0)
ctorIL.Emit(OpCodes.Call, objCtor)
ctorIL.Emit(OpCodes.Ldarg_0)
ctorIL.Emit(OpCodes.Ldarg_1)
ctorIL.Emit(OpCodes.Stfld, xField)
ctorIL.Emit(OpCodes.Ldarg_0)
ctorIL.Emit(OpCodes.Ldarg_2)
ctorIL.Emit(OpCodes.Stfld, yField)
ctorIL.Emit(OpCodes.Ldarg_0)
ctorIL.Emit(OpCodes.Ldarg_3)
ctorIL.Emit(OpCodes.Stfld, zField)
ctorIL.Emit(OpCodes.Ret)
' Now, you'll construct the method find the dot product of two vectors. First,
' let's define the parameters that will be accepted by the method. In this case,
' it's an IntVector itself!
Dim dpParams() As Type = {ivTypeBld}
' Here, you create a MethodBuilder containing the
' name, the attributes (public, static, private, and so on),
' the return type (int, in this case), and a array of Type
' indicating the type of each parameter. Since the sole parameter
' is a IntVector, the very class you're creating, you will
' pass in the TypeBuilder (which is derived from Type) instead of
' a Type object for IntVector, avoiding an exception.
' -- This method would be declared in VB.NET as:
' Public Function DotProduct(IntVector aVector) As Integer
Dim dotProductMthd As MethodBuilder = ivTypeBld.DefineMethod("DotProduct", _
MethodAttributes.Public, GetType(Integer), _
dpParams)
' A ILGenerator can now be spawned, attached to the MethodBuilder.
Dim mthdIL As ILGenerator = dotProductMthd.GetILGenerator()
' Here's the body of our function, in MSIL form. We're going to find the
' "dot product" of the current vector instance with the passed vector
' instance. For reference purposes, the equation is:
' (x1 * x2) + (y1 * y2) + (z1 * z2) = the dot product
' First, you'll load the reference to the current instance "this"
' stored in argument 0 (ldarg.0) onto the stack. Ldfld, the subsequent
' instruction, will pop the reference off the stack and look up the
' field "x", specified by the FieldInfo token "xField".
mthdIL.Emit(OpCodes.Ldarg_0)
mthdIL.Emit(OpCodes.Ldfld, xField)
' That completed, the value stored at field "x" is now atop the stack.
' Now, you'll do the same for the object reference we passed as a
' parameter, stored in argument 1 (ldarg.1). After Ldfld executed,
' you'll have the value stored in field "x" for the passed instance
' atop the stack.
mthdIL.Emit(OpCodes.Ldarg_1)
mthdIL.Emit(OpCodes.Ldfld, xField)
' There will now be two values atop the stack - the "x" value for the
' current vector instance, and the "x" value for the passed instance.
' You'll now multiply them, and push the result onto the evaluation stack.
mthdIL.Emit(OpCodes.Mul_Ovf_Un)
' Now, repeat this for the "y" fields of both vectors.
mthdIL.Emit(OpCodes.Ldarg_0)
mthdIL.Emit(OpCodes.Ldfld, yField)
mthdIL.Emit(OpCodes.Ldarg_1)
mthdIL.Emit(OpCodes.Ldfld, yField)
mthdIL.Emit(OpCodes.Mul_Ovf_Un)
' At this time, the results of both multiplications should be atop
' the stack. You'll now add them and push the result onto the stack.
mthdIL.Emit(OpCodes.Add_Ovf_Un)
' Multiply both "z" field and push the result onto the stack.
mthdIL.Emit(OpCodes.Ldarg_0)
mthdIL.Emit(OpCodes.Ldfld, zField)
mthdIL.Emit(OpCodes.Ldarg_1)
mthdIL.Emit(OpCodes.Ldfld, zField)
mthdIL.Emit(OpCodes.Mul_Ovf_Un)
' Finally, add the result of multiplying the "z" fields with the
' result of the earlier addition, and push the result - the dot product -
' onto the stack.
mthdIL.Emit(OpCodes.Add_Ovf_Un)
' The "ret" opcode will pop the last value from the stack and return it
' to the calling method. You're all done!
mthdIL.Emit(OpCodes.Ret)
ivType = ivTypeBld.CreateType()
Return ivType
End Function 'DynamicDotProductGen
Public Shared Sub Main()
Dim IVType As Type = Nothing
Dim aVector1 As Object = Nothing
Dim aVector2 As Object = Nothing
Dim aVtypes() As Type = {GetType(Integer), GetType(Integer), GetType(Integer)}
Dim aVargs1() As Object = {10, 10, 10}
Dim aVargs2() As Object = {20, 20, 20}
' Call the method to build our dynamic class.
IVType = DynamicDotProductGen()
Dim myDTctor As ConstructorInfo = IVType.GetConstructor(aVtypes)
aVector1 = myDTctor.Invoke(aVargs1)
aVector2 = myDTctor.Invoke(aVargs2)
Console.WriteLine("---")
Dim passMe(0) As Object
passMe(0) = CType(aVector2, Object)
Console.WriteLine("(10, 10, 10) . (20, 20, 20) = {0}", _
IVType.InvokeMember("DotProduct", BindingFlags.InvokeMethod, _
Nothing, aVector1, passMe))
End Sub
End Class
' +++ OUTPUT +++
' ---
' (10, 10, 10) . (20, 20, 20) = 600
Комментарии
Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для TypeBuilder.
Конструкторы
TypeBuilder() |
Инициализирует новый экземпляр класса TypeBuilder. |
Поля
UnspecifiedTypeSize |
Представляет, что общий размер для типа не указан. |
Свойства
Assembly |
Извлекает динамическую сборку, которая содержит определение данного типа. |
AssemblyQualifiedName |
Возвращает полное имя этого типа, дополненное отображаемым именем сборки. |
Attributes |
Определяет и создает новые экземпляры классов во время выполнения. |
Attributes |
Возвращает атрибуты, связанные с объектом Type. (Унаследовано от Type) |
Attributes |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
BaseType |
Возвращает базовый тип этого типа. |
ContainsGenericParameters |
Определяет и создает новые экземпляры классов во время выполнения. |
ContainsGenericParameters |
Возвращает значение, позволяющее определить, имеются ли у текущего объекта Type параметры типа, которые не были замещены указанными типами. (Унаследовано от Type) |
ContainsGenericParameters |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
CustomAttributes |
Получает коллекцию, содержащую пользовательские атрибуты этого члена. (Унаследовано от MemberInfo) |
DeclaredConstructors |
Получает коллекцию конструкторов, объявленных текущим типом. (Унаследовано от TypeInfo) |
DeclaredEvents |
Получает коллекцию событий, определенных текущим типом. (Унаследовано от TypeInfo) |
DeclaredFields |
Получает коллекцию полей, определенных текущим типом. (Унаследовано от TypeInfo) |
DeclaredMembers |
Получает коллекцию членов, определенных текущим типом. (Унаследовано от TypeInfo) |
DeclaredMethods |
Получает коллекцию методов, определенных текущим типом. (Унаследовано от TypeInfo) |
DeclaredNestedTypes |
Получает коллекцию вложенных типов, определенных текущим типом. (Унаследовано от TypeInfo) |
DeclaredProperties |
Возвращает коллекцию свойств, определенных текущим типом. (Унаследовано от TypeInfo) |
DeclaringMethod |
Возвращает метод, который объявил текущий параметр универсального типа. |
DeclaringMethod |
Возвращает метод MethodBase, который представляет объявляемый метод, если текущий Type представляет параметр типа универсального метода. (Унаследовано от Type) |
DeclaringType |
Возвращает тип, объявивший этот тип. |
FullName |
Извлекает полный путь данного типа. |
GenericParameterAttributes |
Получает значение, указывающее ковариацию и особые ограничения текущего параметра универсального типа. |
GenericParameterAttributes |
Возвращает сочетание флагов GenericParameterAttributes, описывающих ковариацию и особые ограничения текущего параметра универсального типа. (Унаследовано от Type) |
GenericParameterPosition |
Возвращает позицию параметра типа в списке параметров типа универсального типа, в котором объявлен этот параметр. |
GenericParameterPosition |
Возвращает позицию параметра типа в списке параметров универсального типа или метода, который объявил параметр, если объект Type представляет параметр универсального типа или метода. (Унаследовано от Type) |
GenericTypeArguments |
Определяет и создает новые экземпляры классов во время выполнения. |
GenericTypeArguments |
Получает массив аргументов универсального типа для этого типа. (Унаследовано от Type) |
GenericTypeArguments |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GenericTypeParameters |
Возвращает массив параметров универсального типа для текущего экземпляра. (Унаследовано от TypeInfo) |
GUID |
Получает идентификатор GUID этого типа. |
HasElementType |
Возвращает значение, позволяющее определить, содержит ли текущий объект Type в себе другой тип или ссылку на другой тип (иными словами, является ли текущий объект Type массивом, указателем либо параметром или же он передается по ссылке). (Унаследовано от Type) |
HasElementType |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
ImplementedInterfaces |
Возвращает коллекцию интерфейсов, реализованных текущим типом. (Унаследовано от TypeInfo) |
IsAbstract |
Возвращает значение, показывающее, является ли данный объект Type абстрактным объектом, который должен быть переопределен. (Унаследовано от Type) |
IsAbstract |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsAnsiClass |
Возвращает значение, позволяющее определить, выбран ли для объекта |
IsAnsiClass |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsArray |
Возвращает значение, показывающее, является ли тип массивом. (Унаследовано от Type) |
IsArray |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsAutoClass |
Возвращает значение, позволяющее определить, выбран ли для объекта |
IsAutoClass |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsAutoLayout |
Получает значение, указывающее, выкладываются ли поля текущего типа автоматически средой CLR. (Унаследовано от Type) |
IsAutoLayout |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsByRef |
Возвращает значение, указывающее, передан ли объект Type по ссылке. (Унаследовано от Type) |
IsByRef |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsByRefLike |
Возвращает значение, показывающее, является ли тип структурой, подобной ByRef. |
IsByRefLike |
Возвращает значение, показывающее, является ли тип структурой, подобной ByRef. (Унаследовано от Type) |
IsClass |
Получает значение, позволяющее определить, является объект Type классом или делегатом (иными словами, не является типом значения или интерфейсом). (Унаследовано от Type) |
IsClass |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsCollectible |
Получает значение, указывающее, является ли объект MemberInfo частью сборки, содержащейся в забираемом контексте AssemblyLoadContext. (Унаследовано от MemberInfo) |
IsCOMObject |
Возвращает значение, указывающее, является ли объект Type COM-объектом. (Унаследовано от Type) |
IsCOMObject |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsConstructedGenericType |
Возвращает значение, указывающее, представляет ли этот данный объект сконструированный универсальный тип. |
IsConstructedGenericType |
Возвращает значение, указывающее, представляет ли этот данный объект сконструированный универсальный тип. Можно создать экземпляры сконструированного универсального типа. (Унаследовано от Type) |
IsContextful |
Возвращает значение, позволяющее определить, можно ли поместить в контекст объект Type. (Унаследовано от Type) |
IsEnum |
Определяет и создает новые экземпляры классов во время выполнения. |
IsEnum |
Возвращает значение, позволяющее определить, представляет ли текущий объект Type перечисление. (Унаследовано от Type) |
IsEnum |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsExplicitLayout |
Возвращает значение, указывающее, выкладываются ли поля текущего типа с явно заданными смещениями. (Унаследовано от Type) |
IsExplicitLayout |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsFunctionPointer |
Возвращает значение, указывающее, является ли текущий Type указатель функцией. (Унаследовано от Type) |
IsGenericMethodParameter |
Получает значение, позволяющее определить, представляет ли текущий объект Type параметр типа в определении универсального метода. (Унаследовано от Type) |
IsGenericParameter |
Возвращает значение, указывающее, является ли текущий тип параметром универсального типа. |
IsGenericParameter |
Возвращает значение, позволяющее определить, представляет ли текущий объект Type параметр типа в определении универсального типа или метода. (Унаследовано от Type) |
IsGenericType |
Возвращает значение, указывающее, является ли текущий тип универсальным. |
IsGenericType |
Возвращает значение, указывающее, является ли текущий тип универсальным. (Унаследовано от Type) |
IsGenericTypeDefinition |
Возвращает значение, определяющее, представляет ли текущий объект TypeBuilder определение универсального типа, на основе которого можно конструировать другие универсальные типы. |
IsGenericTypeDefinition |
Возвращает значение, позволяющее определить, представляет ли текущий объект Type определение универсального типа, на основе которого можно сконструировать другие универсальные типы. (Унаследовано от Type) |
IsGenericTypeParameter |
Получает значение, позволяющее определить, представляет ли текущий объект Type параметр типа в определении универсального типа. (Унаследовано от Type) |
IsImport |
Возвращает значение, позволяющее определить, есть ли у объекта Type атрибут ComImportAttribute, свидетельствующий о том, что объект был импортирован из библиотеки COM-типов. (Унаследовано от Type) |
IsImport |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsInterface |
Возвращает значение, позволяющее определить, является ли объект Type интерфейсом (иными словами, не является классом или типом значения). (Унаследовано от Type) |
IsInterface |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsLayoutSequential |
Возвращает значение, указывающее, выкладываются ли поля текущего типа последовательно, в том порядке, в котором они были определены, или выдаются в метаданные. (Унаследовано от Type) |
IsLayoutSequential |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsMarshalByRef |
Возвращает значение, указывающее, маршалирован ли объект Type по ссылке. (Унаследовано от Type) |
IsMarshalByRef |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsNested |
Возвращает значение, позволяющее определить, представляет ли текущий объект Type тип, определение которого вложено в определение другого типа. (Унаследовано от Type) |
IsNested |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsNestedAssembly |
Возвращает значение, позволяющее определить, является ли объект Type вложенным и видимым только в своей сборке. (Унаследовано от Type) |
IsNestedAssembly |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsNestedFamANDAssem |
Возвращает значение, позволяющее определить, является ли объект Type вложенным и видимым только для классов, принадлежащих одновременно к семейству и сборке этого объекта. (Унаследовано от Type) |
IsNestedFamANDAssem |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsNestedFamily |
Возвращает значение, позволяющее определить, является ли объект Type вложенным и видимым только в своем семействе. (Унаследовано от Type) |
IsNestedFamily |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsNestedFamORAssem |
Возвращает значение, позволяющее определить, является ли данный объект Type вложенным и видимым только для классов, принадлежащих либо к его семейству, либо к его сборке. (Унаследовано от Type) |
IsNestedFamORAssem |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsNestedPrivate |
Возвращает значение, позволяющее определить, является ли объект Type вложенным и объявленным как закрытый. (Унаследовано от Type) |
IsNestedPrivate |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsNestedPublic |
Возвращает значение, позволяющее определить, является ли класс вложенным и объявленным как открытый. (Унаследовано от Type) |
IsNestedPublic |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsNotPublic |
Возвращает значение, позволяющее определить, не был ли объект Type объявлен как открытый. (Унаследовано от Type) |
IsNotPublic |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsPointer |
Возвращает значение, указывающее, является ли объект Type указателем. (Унаследовано от Type) |
IsPointer |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsPrimitive |
Возвращает значение, указывающее, является ли Type одним из типов-примитивов. (Унаследовано от Type) |
IsPrimitive |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsPublic |
Возвращает значение, позволяющее определить, был ли объект Type объявлен как открытый. (Унаследовано от Type) |
IsPublic |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsSealed |
Возвращает значение, позволяющее определить, был ли объект Type объявлен как запечатанный. (Унаследовано от Type) |
IsSealed |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsSecurityCritical |
Получает значение, которое указывает, является ли текущий тип критическим с точки зрения безопасности или надежным с точки зрения безопасности и, следовательно, может ли он выполнять важные операции. |
IsSecurityCritical |
Возвращает значение, которое указывает, является ли текущий тип критически важным для безопасности или защищенным критически важным для безопасности на данном уровне доверия и, следовательно, может ли он выполнять критические операции. (Унаследовано от Type) |
IsSecuritySafeCritical |
Получает значение, которое указывает, является ли текущий тип надежным с точки зрения безопасности и, следовательно, может ли он выполнять критически важные операции и предоставлять доступ прозрачному коду. |
IsSecuritySafeCritical |
Возвращает значение, которое указывает, является ли текущий тип защищенным критически важным для безопасности на текущем уровне доверия и, следовательно, может ли он выполнять критические операции и предоставлять доступ прозрачному коду. (Унаследовано от Type) |
IsSecurityTransparent |
Получает значение, которое указывает, является ли текущий тип прозрачным и, следовательно, не может выполнять критические операции. |
IsSecurityTransparent |
Получает значение, которое указывает, является ли текущий тип прозрачным на текущем уровне доверия и, следовательно, не может выполнять критические операции. (Унаследовано от Type) |
IsSerializable |
Определяет и создает новые экземпляры классов во время выполнения. |
IsSerializable |
Устаревшие..
Возвращает значение, указывающее, является ли объект двоичным Type сериализуемым. (Унаследовано от Type) |
IsSerializable |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsSignatureType |
Возвращает значение, показывающее, является ли тип типом сигнатуры. (Унаследовано от Type) |
IsSpecialName |
Возвращает значение, позволяющее определить, требует ли имя данного объекта специальной обработки. (Унаследовано от Type) |
IsSpecialName |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsSZArray |
Определяет и создает новые экземпляры классов во время выполнения. |
IsSZArray |
Возвращает значение, указывающее, является ли тип типом массива, который может представлять только одномерный массив с нулевой нижней границей. (Унаследовано от Type) |
IsTypeDefinition |
Определяет и создает новые экземпляры классов во время выполнения. |
IsTypeDefinition |
Возвращает значение, показывающее, является ли тип определением типа. (Унаследовано от Type) |
IsUnicodeClass |
Возвращает значение, позволяющее определить, выбран ли для объекта |
IsUnicodeClass |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsUnmanagedFunctionPointer |
Возвращает значение, указывающее, является ли текущий Type указатель неуправляемой функцией. (Унаследовано от Type) |
IsValueType |
Возвращает значение, позволяющее определить, является ли объект Type типом значения. (Унаследовано от Type) |
IsValueType |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsVariableBoundArray |
Определяет и создает новые экземпляры классов во время выполнения. |
IsVariableBoundArray |
Возвращает значение, указывающее, является ли тип типом массива, который может представлять многомерный массив или массив с произвольной нижней границей. (Унаследовано от Type) |
IsVisible |
Возвращает значение, позволяющее определить, можно ли получить доступ к объекту Type из кода за пределами сборки. (Унаследовано от Type) |
IsVisible |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
MemberType |
Возвращает значение MemberTypes, позволяющее определить, каким типом является этот член: обычным или вложенным. (Унаследовано от Type) |
MemberType |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
MetadataToken |
Получает токен, который определяет текущий динамический модуль в метаданных. |
MetadataToken |
Получает значение, определяющее элемент метаданных. (Унаследовано от MemberInfo) |
Module |
Извлекает динамический модуль, который содержит определение данного типа. |
Name |
Извлекает имя данного типа. |
Namespace |
Получает пространство имен, в котором определен этот объект |
PackingSize |
Получает размер упаковки данного типа. |
PackingSizeCore |
При переопределении в производном классе получает размер упаковки этого типа. |
ReflectedType |
Возвращает тип, который был использован для получения этого типа. |
ReflectedType |
Получает объект класса, который использовался для извлечения данного экземпляра объекта |
Size |
Получает общий размер типа. |
SizeCore |
При переопределении в производном классе получает общий размер типа. |
StructLayoutAttribute |
Возвращает атрибут StructLayoutAttribute, описывающий структуру текущего типа. (Унаследовано от Type) |
StructLayoutAttribute |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
TypeHandle |
Не поддерживается в динамических модулях. |
TypeInitializer |
Возвращает инициализатор типа. (Унаследовано от Type) |
TypeInitializer |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
TypeToken |
Возвращает токен типа этого типа. |
UnderlyingSystemType |
Возвращает базовый системный тип для данного |
UnderlyingSystemType |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
Методы
AddDeclarativeSecurity(SecurityAction, PermissionSet) |
Добавляет декларативную безопасность в этот тип. |
AddInterfaceImplementation(Type) |
Добавляет интерфейс, реализуемый данным типом. |
AddInterfaceImplementationCore(Type) |
При переопределении в производном классе добавляет интерфейс, который реализует этот тип. |
AsType() |
Возвращает текущий тип в виде объекта Type. (Унаследовано от TypeInfo) |
CreateType() |
Создает объект Type для этого класса. После определения полей и методов в классе вызывается метод |
CreateTypeInfo() |
Получает объект TypeInfo, представляющий этот тип. |
CreateTypeInfoCore() |
При переопределении в производном классе получает TypeInfo объект, представляющий этот тип. |
DefineConstructor(MethodAttributes, CallingConventions, Type[]) |
Добавляет в тип новый конструктор с заданными атрибутами и сигнатурой. |
DefineConstructor(MethodAttributes, CallingConventions, Type[], Type[][], Type[][]) |
Добавляет в тип новый конструктор с заданными атрибутами, сигнатурой и настраиваемыми модификаторами. |
DefineConstructorCore(MethodAttributes, CallingConventions, Type[], Type[][], Type[][]) |
При переопределении в производном классе добавляет новый конструктор к типу с заданными атрибутами, сигнатурой и настраиваемыми модификаторами. |
DefineDefaultConstructor(MethodAttributes) |
Определяет конструктор без параметров. Определенный здесь конструктор просто вызовет конструктор без параметров родительского элемента. |
DefineDefaultConstructorCore(MethodAttributes) |
При переопределении в производном классе определяет конструктор без параметров. Конструктор, определенный здесь, вызывает конструктор без параметров родительского объекта. |
DefineEvent(String, EventAttributes, Type) |
Добавляет новое событие в тип с заданным именем, атрибутами и типом события. |
DefineEventCore(String, EventAttributes, Type) |
При переопределении в производном классе добавляет новое событие к типу с заданным именем, атрибутами и типом события. |
DefineField(String, Type, FieldAttributes) |
Добавляет новое поле в тип с заданным именем, атрибутами и типом поля. |
DefineField(String, Type, Type[], Type[], FieldAttributes) |
Добавляет новое поле в тип с заданным именем, атрибутами, типом поля и настраиваемыми модификаторами. |
DefineFieldCore(String, Type, Type[], Type[], FieldAttributes) |
При переопределении в производном классе добавляет в тип новое поле с заданным именем, атрибутами, типом поля и настраиваемыми модификаторами. |
DefineGenericParameters(String[]) |
Определяет параметры универсального типа для текущего типа, указывая их количество и имена, и возвращает массив объектов GenericTypeParameterBuilder, которые можно использовать для задания их ограничений. |
DefineGenericParametersCore(String[]) |
При переопределении в производном классе определяет параметры универсального типа для текущего типа, указывая их число и имена. |
DefineInitializedData(String, Byte[], FieldAttributes) |
Определяет инициализированное поле данных в разделе .sdata переносимого исполняемого (PE) файла. |
DefineInitializedDataCore(String, Byte[], FieldAttributes) |
При переопределении в производном классе определяет поле инициализированных данных в разделе SDATA переносимого исполняемого файла (PE). |
DefineMethod(String, MethodAttributes) |
Добавляет новый метод в тип с указанным именем и атрибутами метода. |
DefineMethod(String, MethodAttributes, CallingConventions) |
Добавляет новый метод в тип с указанным именем, атрибутами метода, соглашением о вызовах. |
DefineMethod(String, MethodAttributes, CallingConventions, Type, Type[]) |
Добавляет новый метод в тип с указанным именем, атрибутами метода, соглашением о вызовах и сигнатурой метода. |
DefineMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][]) |
Добавляет новый метод в тип с указанным именем, атрибутами метода, соглашением о вызовах, сигнатурой метода и настраиваемыми модификаторами. |
DefineMethod(String, MethodAttributes, Type, Type[]) |
Добавляет новый метод в тип с указанным именем, атрибутами метода и сигнатурой метода. |
DefineMethodCore(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][]) |
При переопределении в производном классе добавляет в тип новый метод с указанным именем, атрибутами метода, соглашением о вызовах, сигнатурой метода и настраиваемыми модификаторами. |
DefineMethodOverride(MethodInfo, MethodInfo) |
Задает тело данного метода, реализующее объявление данного метода, возможно, с другим именем. |
DefineMethodOverrideCore(MethodInfo, MethodInfo) |
При переопределении в производном классе указывает тело заданного метода, реализующего заданное объявление метода, потенциально с другим именем. |
DefineNestedType(String) |
Определяет вложенный тип с заданным именем. |
DefineNestedType(String, TypeAttributes) |
Определяет вложенный тип с заданным именем и атрибутами. |
DefineNestedType(String, TypeAttributes, Type) |
Определяет вложенный тип на основе его имени, атрибутов и типа, который он расширяет. |
DefineNestedType(String, TypeAttributes, Type, Int32) |
Определяет вложенный тип по заданным имени, атрибутам, общему размеру типа и типу, который он расширяет. |
DefineNestedType(String, TypeAttributes, Type, PackingSize) |
Определяет вложенный тип по заданным имени, атрибутам, типу, который он расширяет, и размеру упаковки. |
DefineNestedType(String, TypeAttributes, Type, PackingSize, Int32) |
Определяет вложенный тип на основе его имени, атрибутов, размера и типа, который он расширяет. |
DefineNestedType(String, TypeAttributes, Type, Type[]) |
Определяет вложенный тип по заданным имени, атрибутам, типу, который он расширяет, и интерфейсам, которые он реализует. |
DefineNestedTypeCore(String, TypeAttributes, Type, Type[], PackingSize, Int32) |
При переопределении в производном классе определяет вложенный тип с учетом его имени, атрибутов, размера и типа, который он расширяет. |
DefinePInvokeMethod(String, String, MethodAttributes, CallingConventions, Type, Type[], CallingConvention, CharSet) |
Определяет метод |
DefinePInvokeMethod(String, String, String, MethodAttributes, CallingConventions, Type, Type[], CallingConvention, CharSet) |
Определяет метод |
DefinePInvokeMethod(String, String, String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][], CallingConvention, CharSet) |
Определяет метод |
DefinePInvokeMethodCore(String, String, String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][], CallingConvention, CharSet) |
При переопределении в производном классе определяет метод PInvoke с указанным именем, именем БИБЛИОТЕКи DLL, именем точки входа, атрибутами, соглашением о вызове, типом возвращаемого значения, типами параметров, флагами PInvoke и настраиваемыми модификаторами для параметров и типа возвращаемого значения. |
DefineProperty(String, PropertyAttributes, CallingConventions, Type, Type[]) |
Добавляет новое свойство в тип с заданным именем, атрибутами, соглашением о вызове и сигнатурой свойства. |
DefineProperty(String, PropertyAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][]) |
Добавляет новое свойство в тип с заданным именем, соглашением о вызовах, сигнатурой свойства и настраиваемыми модификаторами. |
DefineProperty(String, PropertyAttributes, Type, Type[]) |
Добавляет новое свойство в тип с заданным именем и сигнатурой свойства. |
DefineProperty(String, PropertyAttributes, Type, Type[], Type[], Type[], Type[][], Type[][]) |
Добавляет новое свойство в тип с заданным именем, сигнатурой свойства и настраиваемыми модификаторами. |
DefinePropertyCore(String, PropertyAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][]) |
При переопределении в производном классе добавляет к типу новое свойство с заданным именем, соглашением о вызовах, сигнатурой свойства и пользовательскими модификаторами. |
DefineTypeInitializer() |
Определяет инициализатор для этого типа. |
DefineTypeInitializerCore() |
При переопределении в производном классе определяет инициализатор для этого типа. |
DefineUninitializedData(String, Int32, FieldAttributes) |
Определяет неинициализированное поле данных в разделе |
DefineUninitializedDataCore(String, Int32, FieldAttributes) |
При переопределении в производном классе определяет неинициализированное поле данных в |
Equals(Object) |
Определяет, совпадает ли базовый системный тип текущего объекта Type с базовым системным типом указанного объекта Object. (Унаследовано от Type) |
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. (Унаследовано от MemberInfo) |
Equals(Type) |
Позволяет определить, совпадает ли базовый системный тип текущего объекта Type с базовым системным типом указанного объекта Type. (Унаследовано от Type) |
FindInterfaces(TypeFilter, Object) |
Возвращает массив объектов Type, представляющий отфильтрованный список интерфейсов, реализованных или наследуемых текущим объектом Type. (Унаследовано от Type) |
FindInterfaces(TypeFilter, Object) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object) |
Возвращает отфильтрованный массив объектов MemberInfo, тип которого совпадает с указанным типом члена. (Унаследовано от Type) |
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetArrayRank() |
Определяет и создает новые экземпляры классов во время выполнения. |
GetArrayRank() |
Возвращает размерность массива. (Унаследовано от Type) |
GetArrayRank() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetAttributeFlagsImpl() |
При переопределении в производном классе реализует свойство Attributes и возвращает побитовое сочетание значений перечисления, указывающих атрибуты, связанные с Type. |
GetAttributeFlagsImpl() |
При переопределении в производном классе реализует свойство Attributes и возвращает побитовое сочетание значений перечисления, указывающих атрибуты, связанные с Type. (Унаследовано от Type) |
GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Выполняет поиск конструктора с параметрами, соответствующими указанным модификаторам и типам аргументов, с учетом заданных ограничений по привязке и соглашений о вызовах. (Унаследовано от Type) |
GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[]) |
Выполняет поиск конструктора, параметры которого соответствуют указанным типам аргументов и модификаторам, используя заданные ограничения привязки. (Унаследовано от Type) |
GetConstructor(BindingFlags, Type[]) |
Выполняет поиск конструктора, параметры которого соответствуют заданным типам аргументов, используя указанные ограничения привязки. (Унаследовано от Type) |
GetConstructor(Type, ConstructorInfo) |
Возвращает конструктор указанного сконструированного универсального типа, соответствующего указанному конструктору определения универсального типа. |
GetConstructor(Type[]) |
Выполняет поиск открытого конструктора экземпляра, параметры которого соответствуют типам, содержащимся в указанном массиве. (Унаследовано от Type) |
GetConstructor(Type[]) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
При переопределении в производном классе ищет конструктор, параметры которого соответствуют указанным типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах. |
GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
При переопределении в производном классе ищет конструктор, параметры которого соответствуют указанным типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах. (Унаследовано от Type) |
GetConstructors() |
Возвращает все открытые конструкторы, определенные для текущего объекта Type. (Унаследовано от Type) |
GetConstructors() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetConstructors(BindingFlags) |
Возвращает массив объектов ConstructorInfo, представляющих открытые и закрытые конструкторы, определенные для этого класса, как указано. |
GetConstructors(BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetCustomAttributes(Boolean) |
Возвращает все настраиваемые атрибуты, определенные для данного типа. |
GetCustomAttributes(Boolean) |
При переопределении в производном классе возвращает массив всех настраиваемых атрибутов, примененных к данному члену. (Унаследовано от MemberInfo) |
GetCustomAttributes(Type, Boolean) |
Возвращает все настраиваемые атрибуты текущего типа, которые можно назначить указанному типу. |
GetCustomAttributes(Type, Boolean) |
При переопределении в производном классе возвращает массив настраиваемых атрибутов, применяемых к этому элементу и определяемых параметром Type. (Унаследовано от MemberInfo) |
GetCustomAttributesData() |
Возвращает список объектов CustomAttributeData, представляющих данные об атрибутах, примененных к целевому элементу. (Унаследовано от MemberInfo) |
GetDeclaredEvent(String) |
Возвращает объект , представляющий указанное событие, объявленное текущим типом. (Унаследовано от TypeInfo) |
GetDeclaredField(String) |
Возвращает объект , представляющий указанное поле, объявленное текущим типом. (Унаследовано от TypeInfo) |
GetDeclaredMethod(String) |
Возвращает объект , представляющий указанный метод, объявленный текущим типом. (Унаследовано от TypeInfo) |
GetDeclaredMethods(String) |
Возвращает коллекцию, содержащую все методы, объявленные в текущем типе, соответствующие указанному имени. (Унаследовано от TypeInfo) |
GetDeclaredNestedType(String) |
Возвращает объект , представляющий указанный вложенный тип, объявленный текущим типом. (Унаследовано от TypeInfo) |
GetDeclaredProperty(String) |
Возвращает объект , представляющий указанное свойство, объявленное текущим типом. (Унаследовано от TypeInfo) |
GetDefaultMembers() |
Выполняет поиск членов, определенных для текущего объекта Type, для которого задан атрибут DefaultMemberAttribute. (Унаследовано от Type) |
GetDefaultMembers() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetElementType() |
При вызове этого метода всегда возникает исключение NotSupportedException. |
GetEnumName(Object) |
Возвращает имя константы с заданным значением для текущего типа перечисления. (Унаследовано от Type) |
GetEnumName(Object) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetEnumNames() |
Возвращает имена членов текущего типа перечисления. (Унаследовано от Type) |
GetEnumNames() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetEnumUnderlyingType() |
Возвращает базовый тип текущего типа перечисления. (Унаследовано от Type) |
GetEnumUnderlyingType() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetEnumValues() |
Возвращает массив значений констант в текущем типе перечисления. (Унаследовано от Type) |
GetEnumValues() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetEnumValuesAsUnderlyingType() |
Извлекает массив значений базовых констант этого типа перечисления. (Унаследовано от Type) |
GetEvent(String) |
Возвращает объект EventInfo, представляющий указанное открытое событие. (Унаследовано от Type) |
GetEvent(String) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetEvent(String, BindingFlags) |
Возвращает событие с указанным именем. |
GetEvent(String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetEvents() |
Возвращает открытые события, объявленные или наследованные данным типом. |
GetEvents() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetEvents(BindingFlags) |
Возвращает открытые и не являющиеся открытыми события, объявленные данным типом. |
GetEvents(BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetField(String) |
Выполняет поиск открытого поля с заданным именем. (Унаследовано от Type) |
GetField(String) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetField(String, BindingFlags) |
Возвращает поле, указанное данным именем. |
GetField(String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetField(Type, FieldInfo) |
Возвращает поле указанного сконструированного универсального типа, соответствующее указанному полю определения универсального типа. |
GetFields() |
Возвращает все открытые поля текущего объекта Type. (Унаследовано от Type) |
GetFields() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetFields(BindingFlags) |
Возвращает открытые и не являющиеся открытыми поля, объявленные данным типом. |
GetFields(BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetFunctionPointerCallingConventions() |
При переопределении в производном классе возвращает соглашения о вызовах текущего указателя Typeфункции . (Унаследовано от Type) |
GetFunctionPointerParameterTypes() |
При переопределении в производном классе возвращает типы параметров текущего указателя Typeфункции . (Унаследовано от Type) |
GetFunctionPointerReturnType() |
При переопределении в производном классе возвращает тип возвращаемого значения текущего указателя Typeфункции . (Унаследовано от Type) |
GetGenericArguments() |
Возвращает массив объектов Type, которые представляют аргументы универсального типа или параметры определения универсального типа. |
GetGenericArguments() |
Возвращает массив объектов Type, которые представляют аргументы закрытого универсального типа или параметры определения универсального типа. (Унаследовано от Type) |
GetGenericArguments() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetGenericParameterConstraints() |
Определяет и создает новые экземпляры классов во время выполнения. |
GetGenericParameterConstraints() |
Возвращает массив объектов Type, которые представляют ограничения, накладываемые на параметр текущего универсального типа. (Унаследовано от Type) |
GetGenericParameterConstraints() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetGenericTypeDefinition() |
Возвращает объект Type, представляющий определение универсального типа, на основе которого можно получить текущий тип. |
GetGenericTypeDefinition() |
Возвращает объект Type, представляющий определение универсального типа, на основе которого можно сконструировать текущий универсальный тип. (Унаследовано от Type) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от Type) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от MemberInfo) |
GetInterface(String) |
Выполняет поиск интерфейса с заданным именем. (Унаследовано от Type) |
GetInterface(String) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetInterface(String, Boolean) |
Возвращает интерфейс, реализованный (прямо или косвенно) данным классом с полным именем, совпадающим с именем данного интерфейса. |
GetInterface(String, Boolean) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetInterfaceMap(Type) |
Возвращает сопоставление для запрошенного интерфейса. |
GetInterfaces() |
Возвращает массив всех интерфейсов, реализованных для данного типа и его базовых типов. |
GetInterfaces() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMember(String) |
Выполняет поиск открытого члена с заданным именем. (Унаследовано от Type) |
GetMember(String) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMember(String, BindingFlags) |
Выполняет поиск указанных членов, используя заданные ограничения привязки. (Унаследовано от Type) |
GetMember(String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMember(String, MemberTypes, BindingFlags) |
Возвращает все открытые и закрытые члены, объявленные или наследуемые данным типом, как указано. |
GetMember(String, MemberTypes, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMembers() |
Возвращает все открытые члены текущего объекта Type. (Унаследовано от Type) |
GetMembers() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMembers(BindingFlags) |
Возвращает открытые и не являющиеся открытыми члены, объявленные или наследуемые данным типом. |
GetMembers(BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMemberWithSameMetadataDefinitionAs(MemberInfo) |
Выполняет поиск по MemberInfo текущему Type объекту , соответствующему указанному MemberInfoобъекту . (Унаследовано от Type) |
GetMethod(String) |
Выполняет поиск открытого метода с заданным именем. (Унаследовано от Type) |
GetMethod(String) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMethod(String, BindingFlags) |
Выполняет поиск указанного метода, используя заданные ограничения привязки. (Унаследовано от Type) |
GetMethod(String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Ищет метод с параметрами, соответствующими указанным модификаторам и типам аргументов, с учетом заданных ограничений привязки и соглашений о вызовах. (Унаследовано от Type) |
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[]) |
Ищет заданный метод, параметры которого соответствуют указанным типам аргументов и модификаторам, используя установленные ограничения привязки. (Унаследовано от Type) |
GetMethod(String, BindingFlags, Type[]) |
Выполняет поиск указанного метода, параметры которого соответствуют заданным типам аргументов, используя указанные ограничения привязки. (Унаследовано от Type) |
GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Ищет метод с параметрами, соответствующими указанному числу универсальных параметров, модификаторам и типам аргументов, с учетом заданных ограничений привязки и соглашений о вызовах. (Унаследовано от Type) |
GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[]) |
Ищет заданный метод, параметры которого соответствуют указанному числу универсальных параметров, типам аргументов и модификаторам, используя установленные ограничения привязки. (Унаследовано от Type) |
GetMethod(String, Int32, BindingFlags, Type[]) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от Type) |
GetMethod(String, Int32, Type[]) |
Выполняет поиск указанного открытого метода, параметры которого соответствуют указанному числу универсальных параметров и типам аргументов. (Унаследовано от Type) |
GetMethod(String, Int32, Type[], ParameterModifier[]) |
Выполняет поиск указанного открытого метода, параметры которого соответствуют указанному числу универсальных параметров, типам аргументов и модификаторам. (Унаследовано от Type) |
GetMethod(String, Type[]) |
Ищет указанный открытый метод, параметры которого соответствуют заданным типам аргументов. (Унаследовано от Type) |
GetMethod(String, Type[]) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMethod(String, Type[], ParameterModifier[]) |
Выполняет поиск указанного открытого метода, параметры которого соответствуют указанным типам аргументов и модификаторам. (Унаследовано от Type) |
GetMethod(String, Type[], ParameterModifier[]) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMethod(Type, MethodInfo) |
Возвращает метод указанного сконструированного универсального типа, соответствующего указанному методу определения универсального типа. |
GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанным типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах. |
GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанным типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах. (Унаследовано от Type) |
GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанному числу универсальных параметров, типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах. (Унаследовано от Type) |
GetMethods() |
Возвращает все открытые методы текущего объекта Type. (Унаследовано от Type) |
GetMethods() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetMethods(BindingFlags) |
Возвращает все открытые и закрытые методы, объявленные или наследуемые данным типом, как указано. |
GetMethods(BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetNestedType(String) |
Выполняет поиск открытого вложенного типа с заданным именем. (Унаследовано от Type) |
GetNestedType(String) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetNestedType(String, BindingFlags) |
Возвращает открытые и не являющиеся открытыми вложенные типы, объявленные этим типом. |
GetNestedType(String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetNestedTypes() |
Возвращает открытые типы, вложенные в текущий объект Type. (Унаследовано от Type) |
GetNestedTypes() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetNestedTypes(BindingFlags) |
Возвращает открытые и не являющиеся открытыми вложенные типы, объявленные или наследованные данным типом. |
GetNestedTypes(BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetOptionalCustomModifiers() |
При переопределении в производном классе возвращает необязательные настраиваемые модификаторы текущего Typeобъекта . (Унаследовано от Type) |
GetProperties() |
Возвращает все открытые свойства текущего объекта Type. (Унаследовано от Type) |
GetProperties() |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetProperties(BindingFlags) |
Возвращает все открытые и закрытые свойства, объявленные или наследуемые данным типом, как указано. |
GetProperties(BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetProperty(String) |
Выполняет поиск открытого свойства с заданным именем. (Унаследовано от Type) |
GetProperty(String) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetProperty(String, BindingFlags) |
Ищет указанное свойство, используя заданные ограничения привязки. (Унаследовано от Type) |
GetProperty(String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]) |
Ищет свойство с параметрами, соответствующими указанным модификаторам и типам аргументов, с учетом заданных ограничений привязки. (Унаследовано от Type) |
GetProperty(String, Type) |
Выполняет поиск открытого свойства с заданным именем и типом возвращаемого значения. (Унаследовано от Type) |
GetProperty(String, Type) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetProperty(String, Type, Type[]) |
Ищет указанное открытое свойство, параметры которого соответствуют указанным типам аргументов. (Унаследовано от Type) |
GetProperty(String, Type, Type[]) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetProperty(String, Type, Type[], ParameterModifier[]) |
Ищет заданное открытое свойство, параметры которого соответствуют указанным типам аргументов и модификаторам. (Унаследовано от Type) |
GetProperty(String, Type, Type[], ParameterModifier[]) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetProperty(String, Type[]) |
Ищет указанное открытое свойство, параметры которого соответствуют указанным типам аргументов. (Унаследовано от Type) |
GetProperty(String, Type[]) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]) |
При переопределении в производном классе выполняет поиск заданного свойства, параметры которого соответствуют типам и модификаторам заданных аргументов, с использованием заданных ограничений привязки. |
GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]) |
При переопределении в производном классе выполняет поиск заданного свойства, параметры которого соответствуют типам и модификаторам заданных аргументов, с использованием заданных ограничений привязки. (Унаследовано от Type) |
GetRequiredCustomModifiers() |
При переопределении в производном классе возвращает необходимые настраиваемые модификаторы текущего Typeобъекта . (Унаследовано от Type) |
GetType() |
Возвращает текущий Type. (Унаследовано от Type) |
GetType() |
Выявляет атрибуты элемента и обеспечивает доступ к его метаданным. (Унаследовано от MemberInfo) |
GetTypeCodeImpl() |
Возвращает код базового типа этого экземпляра Type. (Унаследовано от Type) |
HasElementTypeImpl() |
При переопределении в производном классе реализует свойство HasElementType и определяет, что содержится в текущем объекте Type: непосредственно другой тип или же указывающая на него ссылка (иными словами, является ли текущий объект Type массивом, указателем или параметром или же он передается по ссылке). |
HasElementTypeImpl() |
При переопределении в производном классе реализует свойство HasElementType и определяет, что содержится в текущем объекте Type: непосредственно другой тип или же указывающая на него ссылка (иными словами, является ли текущий объект Type массивом, указателем или параметром или же он передается по ссылке). (Унаследовано от Type) |
HasSameMetadataDefinitionAs(MemberInfo) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от MemberInfo) |
InvokeMember(String, BindingFlags, Binder, Object, Object[]) |
Вызывает указанный член, соответствующий заданным ограничениям привязки и указанному списку аргументов. (Унаследовано от Type) |
InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo) |
Вызывает указанный член, соответствующий заданным ограничениям привязки, списку аргументов, а также языку и региональным параметрам. (Унаследовано от Type) |
InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) |
Вызывает указанный член. Вызываемый метод должен быть доступен и обеспечивать наиболее точное соответствие заданному списку аргументов с учетом ограничений заданного модуля привязки и атрибутов вызова. |
IsArrayImpl() |
При переопределении в производном классе реализует свойство IsArray и определяет, является ли данный объект Type массивом. |
IsArrayImpl() |
При переопределении в производном классе реализует свойство IsArray и определяет, является ли данный объект Type массивом. (Унаследовано от Type) |
IsAssignableFrom(Type) |
Возвращает значение, указывающее, может ли заданный Type быть назначен этому объекту. |
IsAssignableFrom(Type) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsAssignableFrom(TypeInfo) |
Получает значение, указывающее, может ли заданный объект TypeInfo быть назначен этому объекту. |
IsAssignableTo(Type) |
Определяет, можно ли назначить текущий тип переменной указанного типа |
IsByRefImpl() |
При переопределении в производном классе реализует свойство IsByRef и определяет, передается ли данный объект Type по ссылке. |
IsByRefImpl() |
При переопределении в производном классе реализует свойство IsByRef и определяет, передается ли данный объект Type по ссылке. (Унаследовано от Type) |
IsCOMObjectImpl() |
При переопределении в производном классе реализует свойство IsCOMObject и определяет, является ли объект Type COM-объектом. |
IsCOMObjectImpl() |
При переопределении в производном классе реализует свойство IsCOMObject и определяет, является ли объект Type COM-объектом. (Унаследовано от Type) |
IsContextfulImpl() |
Реализует свойство IsContextful и определяет, можно ли поместить в контекст данный объект Type. (Унаследовано от Type) |
IsCreated() |
Возвращает значение, которое показывает, был ли создан текущий динамический тип. |
IsCreatedCore() |
При переопределении в производном классе возвращает значение, указывающее, был ли создан текущий динамический тип. |
IsDefined(Type, Boolean) |
Определяет, применяется ли настраиваемый атрибут к текущему типу. |
IsDefined(Type, Boolean) |
При переопределении в производном классе указывает, применяются ли для этого члена один или несколько атрибутов заданного типа или его производных типов. (Унаследовано от MemberInfo) |
IsEnumDefined(Object) |
Возвращает значение, показывающее, имеется ли в текущем типе перечисления указанное значение. (Унаследовано от Type) |
IsEnumDefined(Object) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsEquivalentTo(Type) |
Определяет, имеют ли два типа модели COM одинаковые удостоверения и могут ли они считаться эквивалентными. (Унаследовано от Type) |
IsEquivalentTo(Type) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsInstanceOfType(Object) |
Определяет, является ли указанный объект экземпляром текущего типа Type. (Унаследовано от Type) |
IsInstanceOfType(Object) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsMarshalByRefImpl() |
Реализует свойство IsMarshalByRef и определяет, маршалируется ли объект Type по ссылке. (Унаследовано от Type) |
IsPointerImpl() |
При переопределении в производном классе реализует свойство IsPointer и определяет, является ли объект Type указателем. |
IsPointerImpl() |
При переопределении в производном классе реализует свойство IsPointer и определяет, является ли объект Type указателем. (Унаследовано от Type) |
IsPrimitiveImpl() |
При переопределении в производном классе реализует свойство IsPrimitive и определяет, является ли объект Type одним из типов-примитивов. |
IsPrimitiveImpl() |
При переопределении в производном классе реализует свойство IsPrimitive и определяет, является ли объект Type одним из типов-примитивов. (Унаследовано от Type) |
IsSubclassOf(Type) |
Определяет, является ли этот тип производным от указанного типа. |
IsSubclassOf(Type) |
Определяет и создает новые экземпляры классов во время выполнения. (Унаследовано от TypeInfo) |
IsValueTypeImpl() |
Реализует свойство IsValueType и определяет, является ли объект Type типом значения (иными словами, не является классом или интерфейсом). (Унаследовано от Type) |
MakeArrayType() |
Возвращает объект Type, представляющий одномерный массив текущего типа с нижней границей, равной нулю. |
MakeArrayType() |
Возвращает объект Type, представляющий одномерный массив текущего типа с нижней границей, равной нулю. (Унаследовано от Type) |
MakeArrayType(Int32) |
Возвращает объект Type, представляющий массив текущего типа указанной размерности. |
MakeArrayType(Int32) |
Возвращает объект Type, представляющий массив текущего типа указанной размерности. (Унаследовано от Type) |
MakeByRefType() |
Возвращает объект Type, который представляет текущий тип при передаче в качестве параметра |
MakeByRefType() |
Возвращает объект Type, который представляет текущий тип при передаче в качестве параметра |
MakeGenericType(Type[]) |
Замещает элементы массива типов для параметров типа определения текущего универсального типа и возвращает результирующий сконструированный тип. |
MakeGenericType(Type[]) |
Замещает элементы массива типов для параметров определения текущего универсального типа и возвращает объект Type, представляющий сконструированный результирующий тип. (Унаследовано от Type) |
MakePointerType() |
Возвращает объект Type, который представляет тип неуправляемого указателя на текущий тип. |
MakePointerType() |
Возвращает объект Type, который представляет указатель на текущий тип. (Унаследовано от Type) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
SetCustomAttribute(ConstructorInfo, Byte[]) |
Задает настраиваемый атрибут с помощью большого двоичного объекта пользовательских атрибутов. |
SetCustomAttribute(CustomAttributeBuilder) |
Задает настраиваемый атрибут с помощью построителя настраиваемых атрибутов. |
SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
При переопределении в производном классе задает настраиваемый атрибут для этой сборки. |
SetParent(Type) |
Задает базовый тип конструируемого в настоящий момент типа. |
SetParentCore(Type) |
При переопределении в производном классе задает базовый тип создаваемого типа. |
ToString() |
Возвращает имя типа, исключая пространство имен. |
Явные реализации интерфейса
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от MemberInfo) |
_MemberInfo.GetType() |
Возвращает объект Type, представляющий класс MemberInfo. (Унаследовано от MemberInfo) |
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса. (Унаследовано от MemberInfo) |
_MemberInfo.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от MemberInfo) |
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от MemberInfo) |
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Type) |
_Type.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса. (Унаследовано от Type) |
_Type.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Type) |
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Type) |
_TypeBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. |
_TypeBuilder.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса. |
_TypeBuilder.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). |
_TypeBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. |
ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Возвращает массив всех настраиваемых атрибутов, определенных для этого элемента, за исключением именованных атрибутов, или пустой массив, если атрибуты отсутствуют. (Унаследовано от MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Возвращает массив настраиваемых атрибутов, определенных для этого элемента с учетом типа, или пустой массив, если отсутствуют настраиваемые атрибуты определенного типа. (Унаследовано от MemberInfo) |
ICustomAttributeProvider.IsDefined(Type, Boolean) |
Указывает, сколько экземпляров |
IReflectableType.GetTypeInfo() |
Возвращает представление текущего типа объекта TypeInfo. (Унаследовано от TypeInfo) |
Методы расширения
GetCustomAttribute(MemberInfo, Type) |
Извлекает пользовательский атрибут заданного типа, примененный к указанному элементу. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Извлекает настраиваемый атрибут указанного типа, который применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttribute<T>(MemberInfo) |
Извлекает пользовательский атрибут заданного типа, примененный к указанному элементу. |
GetCustomAttribute<T>(MemberInfo, Boolean) |
Извлекает настраиваемый атрибут указанного типа, который применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes(MemberInfo) |
Извлекает коллекцию настраиваемых атрибутов, примененных к указанному члену. |
GetCustomAttributes(MemberInfo, Boolean) |
Извлекает коллекцию пользовательских атрибутов, которые применяются к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes(MemberInfo, Type) |
Извлекает коллекцию пользовательских атрибутов заданного типа, примененных к указанному элементу. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Извлекает коллекцию пользовательских атрибутов указанного типа, которые применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes<T>(MemberInfo) |
Извлекает коллекцию пользовательских атрибутов заданного типа, примененных к указанному элементу. |
GetCustomAttributes<T>(MemberInfo, Boolean) |
Извлекает коллекцию пользовательских атрибутов указанного типа, которые применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
IsDefined(MemberInfo, Type) |
Указывает, применены ли какие-либо пользовательские атрибуты заданного типа к указанному члену. |
IsDefined(MemberInfo, Type, Boolean) |
Указывает применены ли настраиваемые атрибуты указанного типа к указанному элементу и, при необходимости, применены ли они к его предкам. |
GetTypeInfo(Type) |
Возвращает представление TypeInfo указанного типа. |
GetMetadataToken(MemberInfo) |
Возвращает маркер метаданных для заданного элемента, если он доступен. |
HasMetadataToken(MemberInfo) |
Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента. |
GetRuntimeEvent(Type, String) |
Получает объект, представляющий указанное событие. |
GetRuntimeEvents(Type) |
Извлекает коллекцию, представляющую все события, определенные в указанном типе. |
GetRuntimeField(Type, String) |
Извлекает объект , который представляет указанное поле. |
GetRuntimeFields(Type) |
Извлекает коллекцию, представляющую все поля, определенные в указанном типе. |
GetRuntimeInterfaceMap(TypeInfo, Type) |
Возвращает сопоставление интерфейса для заданного типа и указанного интерфейса. |
GetRuntimeMethod(Type, String, Type[]) |
Извлекает объект, который представляет указанный метод. |
GetRuntimeMethods(Type) |
Извлекает коллекцию, представляющую все методы, определенные в указанном типе. |
GetRuntimeProperties(Type) |
Извлекает коллекцию, представляющую все свойства, определенные в указанном типе. |
GetRuntimeProperty(Type, String) |
Извлекает объект, который представляет указанное свойство. |
GetConstructor(Type, Type[]) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetConstructors(Type) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetConstructors(Type, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetFields(Type, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetGenericArguments(Type) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetInterfaces(Type) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetMember(Type, String) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetMember(Type, String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetMembers(Type) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetMethods(Type) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetNestedType(Type, String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetProperties(Type) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetProperties(Type, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetProperty(Type, String, BindingFlags) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetProperty(Type, String, Type) |
Определяет и создает новые экземпляры классов во время выполнения. |
GetProperty(Type, String, Type, Type[]) |
Определяет и создает новые экземпляры классов во время выполнения. |
IsAssignableFrom(Type, Type) |
Определяет и создает новые экземпляры классов во время выполнения. |
IsInstanceOfType(Type, Object) |
Определяет и создает новые экземпляры классов во время выполнения. |