TypeBuilder Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania.
public ref class TypeBuilder abstract : System::Reflection::TypeInfo
public ref class TypeBuilder sealed : Type
public ref class TypeBuilder sealed : 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 abstract class TypeBuilder : System.Reflection.TypeInfo
public sealed class TypeBuilder : Type
public sealed 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 TypeInfo
type TypeBuilder = class
inherit Type
[<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 MustInherit Class TypeBuilder
Inherits TypeInfo
Public NotInheritable Class TypeBuilder
Inherits Type
Public NotInheritable Class TypeBuilder
Inherits TypeInfo
Public NotInheritable Class TypeBuilder
Inherits Type
Implements _TypeBuilder
Public NotInheritable Class TypeBuilder
Inherits TypeInfo
Implements _TypeBuilder
- Dziedziczenie
- Dziedziczenie
- Dziedziczenie
- Atrybuty
- Implementuje
Przykłady
Poniższy przykład kodu przedstawia sposób definiowania i używania zestawu dynamicznego. Przykładowy zestaw zawiera jeden typ, MyDynamicType, który ma pole prywatne, właściwość, która pobiera i ustawia pole prywatne, konstruktory, które inicjują pole prywatne, oraz metodę, która mnoży liczbę dostarczaną przez użytkownika przez wartość pola prywatnego i zwraca wynik.
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
W poniższym przykładzie kodu pokazano, jak dynamicznie utworzyć typ przy użyciu polecenia TypeBuilder.
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
Uwagi
TypeBuilder jest klasą główną używaną do kontrolowania tworzenia klas dynamicznych w środowisku uruchomieniowym. Udostępnia zestaw procedur używanych do definiowania klas, dodawania metod i pól oraz tworzenia klasy wewnątrz modułu. Nowy TypeBuilder można utworzyć za pomocą modułu dynamicznego, wywołując metodę ModuleBuilder.DefineType, która zwraca obiekt TypeBuilder.
Emisja odbicia udostępnia następujące opcje definiowania typów:
- Zdefiniuj klasę lub interfejs o podanej nazwie.
- Zdefiniuj klasę lub interfejs z daną nazwą i atrybutami.
- Zdefiniuj klasę o podanej nazwie, atrybutach i klasie bazowej.
- Zdefiniuj klasę o podanej nazwie, atrybutach, klasie bazowej i zestawie interfejsów implementujących klasę.
- Zdefiniuj klasę o podanej nazwie, atrybutach, klasie bazowej i rozmiarze pakowania.
- Zdefiniuj klasę o podanej nazwie, atrybutach, klasie bazowej i rozmiarze klasy jako całości.
- Zdefiniuj klasę o podanej nazwie, atrybutach, klasie bazowej, rozmiarze pakowania i rozmiarze klasy jako całości.
Aby utworzyć typ tablicy, typ wskaźnika lub typ byref dla niekompletnego typu reprezentowanego przez TypeBuilder obiekt, użyj metody MakeArrayType, MakePointerType lub MakeByRefType odpowiednio.
Przed zastosowaniem typu należy wywołać metodę TypeBuilder.CreateType . Metoda CreateType kończy tworzenie typu. Po wywołaniu metody CreateType, obiekt wywołujący może przy użyciu metody Activator.CreateInstance utworzyć wystąpienie typu i przy użyciu metody Type.InvokeMember wywołać elementy członkowskie typu. Jest to błąd podczas wywoływania metod, które zmieniają implementację typu po wywołaniu metody CreateType . Na przykład środowisko uruchomieniowe języka wspólnego zgłasza wyjątek, jeśli wywołujący próbuje dodać nowe członki do typu.
Inicjator klasy jest tworzony przy użyciu TypeBuilder.DefineTypeInitializer metody . Funkcja DefineTypeInitializer zwraca ConstructorBuilder obiekt.
Typy zagnieżdżone są definiowane przez wywołanie jednej z TypeBuilder.DefineNestedType metod.
Attributes
Klasa TypeBuilder używa TypeAttributes wyliczenia, aby dodatkowo określić charakterystykę typu, który ma zostać utworzony:
- Interfejsy są określone przy użyciu atrybutów TypeAttributes.Interface i TypeAttributes.Abstract.
- Klasy betonowe (których nie można rozszerzyć) są określane przy użyciu atrybutu TypeAttributes.Sealed .
- Kilka cech decyduje o widoczności typów. Zobacz opis TypeAttributes wyliczenia.
- Jeśli TypeAttributes.SequentialLayout zostanie określony, moduł ładujący klasy określa pola w kolejności odczytywania z metadanych. Moduł ładujący klasy uwzględnia określony rozmiar pakowania, ale ignoruje wszelkie określone przesunięcia pól. Metadane zachowują kolejność, w jakiej są emitowane definicje pól. Nawet w przypadku scalania metadane nie zmienią kolejności definicji pól. Moduł ładujący będzie honorować określone przesunięcia pól tylko wtedy, gdy TypeAttributes.ExplicitLayout jest podane.
Znane problemy
- Emisja odbicia nie sprawdza, czy klasa nie abstrakcyjna, która implementuje interfejs, zaimplementowała wszystkie metody zadeklarowane w interfejsie. Jeśli jednak klasa nie implementuje wszystkich metod zadeklarowanych w interfejsie, środowisko uruchomieniowe nie ładuje klasy.
- Chociaż TypeBuilder pochodzi z Typeklasy , niektóre metody abstrakcyjne zdefiniowane w Type klasie nie są w pełni implementowane w TypeBuilder klasie. Wywołania tych TypeBuilder metod zgłaszają NotSupportedException wyjątek. Żądaną funkcjonalność można uzyskać, pobierając utworzony typ przy użyciu Type.GetType lub Assembly.GetType i analizując pobrany typ.
Konstruktory
| Nazwa | Opis |
|---|---|
| TypeBuilder() |
Inicjuje nowe wystąpienie klasy TypeBuilder. |
Pola
| Nazwa | Opis |
|---|---|
| UnspecifiedTypeSize |
Reprezentuje ten całkowity rozmiar dla typu nie został określony. |
Właściwości
| Nazwa | Opis |
|---|---|
| Assembly |
Pobiera zestaw dynamiczny zawierający tę definicję typu. |
| AssemblyQualifiedName |
Zwraca pełną nazwę tego typu kwalifikowaną przez nazwę wyświetlaną zestawu. |
| Attributes |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| Attributes |
Pobiera atrybuty skojarzone z elementem Type. (Odziedziczone po Type) |
| BaseType |
Pobiera podstawowy typ tego typu. |
| ContainsGenericParameters |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| ContainsGenericParameters |
Pobiera wartość wskazującą, czy bieżący Type obiekt ma parametry typu, które nie zostały zamienione przez określone typy. (Odziedziczone po Type) |
| CustomAttributes |
Pobiera kolekcję zawierającą atrybuty niestandardowe tego elementu członkowskiego. (Odziedziczone po MemberInfo) |
| DeclaredConstructors |
Pobiera kolekcję konstruktorów zadeklarowanych przez bieżący typ. (Odziedziczone po TypeInfo) |
| DeclaredEvents |
Pobiera kolekcję zdarzeń zdefiniowanych przez bieżący typ. (Odziedziczone po TypeInfo) |
| DeclaredFields |
Pobiera kolekcję pól zdefiniowanych przez bieżący typ. (Odziedziczone po TypeInfo) |
| DeclaredMembers |
Pobiera kolekcję elementów członkowskich zdefiniowanych przez bieżący typ. (Odziedziczone po TypeInfo) |
| DeclaredMethods |
Pobiera kolekcję metod zdefiniowanych przez bieżący typ. (Odziedziczone po TypeInfo) |
| DeclaredNestedTypes |
Pobiera kolekcję zagnieżdżonych typów zdefiniowanych przez bieżący typ. (Odziedziczone po TypeInfo) |
| DeclaredProperties |
Pobiera kolekcję właściwości zdefiniowanych przez bieżący typ. (Odziedziczone po TypeInfo) |
| DeclaringMethod |
Pobiera metodę, która zadeklarowała bieżący parametr typu ogólnego. |
| DeclaringType |
Zwraca typ, który zadeklarował ten typ. |
| FullName |
Pobiera pełną ścieżkę tego typu. |
| GenericParameterAttributes |
Pobiera wartość wskazującą kowariancję i specjalne ograniczenia bieżącego parametru typu ogólnego. |
| GenericParameterPosition |
Pobiera pozycję parametru typu na liście parametrów typu typu, który zadeklarował parametr. |
| GenericTypeArguments |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GenericTypeArguments |
Pobiera tablicę argumentów typu ogólnego dla tego typu. (Odziedziczone po Type) |
| GenericTypeParameters |
Pobiera tablicę parametrów typu ogólnego bieżącego wystąpienia. (Odziedziczone po TypeInfo) |
| GUID |
Pobiera identyfikator GUID tego typu. |
| HasElementType |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| HasElementType |
Pobiera wartość wskazującą, czy bieżąca wartość Type obejmuje lub odwołuje się do innego typu; oznacza to, czy bieżący Type jest tablicą, wskaźnikiem, czy jest przekazywany przez odwołanie. (Odziedziczone po Type) |
| ImplementedInterfaces |
Pobiera kolekcję interfejsów implementowanych przez bieżący typ. (Odziedziczone po TypeInfo) |
| IsAbstract |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsAbstract |
Pobiera wartość wskazującą, czy Type element jest abstrakcyjny i musi zostać zastąpiony. (Odziedziczone po Type) |
| IsAnsiClass |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsAnsiClass |
Pobiera wartość wskazującą, czy atrybut formatu ciągu jest wybrany dla elementu |
| IsArray |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsArray |
Pobiera wartość wskazującą, czy typ jest tablicą. (Odziedziczone po Type) |
| IsAutoClass |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsAutoClass |
Pobiera wartość wskazującą, czy atrybut formatu ciągu jest wybrany dla elementu |
| IsAutoLayout |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsAutoLayout |
Pobiera wartość wskazującą, czy pola bieżącego typu są tworzone automatycznie przez środowisko uruchomieniowe języka wspólnego. (Odziedziczone po Type) |
| IsByRef |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsByRef |
Pobiera wartość wskazującą, czy Type element jest przekazywany przez odwołanie. (Odziedziczone po Type) |
| IsByRefLike |
Pobiera wartość wskazującą, czy typ jest strukturą przypominającą byref. |
| IsClass |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsClass |
Pobiera wartość wskazującą, czy Type jest klasą, czy delegatem, czyli nie typem wartości lub interfejsem. (Odziedziczone po Type) |
| IsCollectible |
Pobiera wartość wskazującą, czy ten MemberInfo obiekt odwołuje się do co najmniej jednego zestawu przechowywanego w kolekcji AssemblyLoadContext. (Odziedziczone po MemberInfo) |
| IsCOMObject |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsCOMObject |
Pobiera wartość wskazującą, czy Type obiekt COM jest obiektem COM. (Odziedziczone po Type) |
| IsConstructedGenericType |
Pobiera wartość wskazującą, czy ten obiekt reprezentuje skonstruowany typ ogólny. |
| IsContextful |
Pobiera wartość wskazującą, czy Type element może być hostowany w kontekście. (Odziedziczone po Type) |
| IsEnum |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| IsEnum |
Pobiera wartość wskazującą, czy bieżący Type reprezentuje wyliczenie. (Odziedziczone po Type) |
| IsExplicitLayout |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsExplicitLayout |
Pobiera wartość wskazującą, czy pola bieżącego typu są określone jawnie przesunięcia. (Odziedziczone po Type) |
| IsFunctionPointer |
Pobiera wartość wskazującą, czy bieżący Type jest wskaźnikiem funkcji. (Odziedziczone po Type) |
| IsGenericMethodParameter |
Pobiera wartość wskazującą, czy bieżący Type reprezentuje parametr typu w definicji metody ogólnej. (Odziedziczone po Type) |
| IsGenericParameter |
Pobiera wartość wskazującą, czy bieżący typ jest parametrem typu ogólnego. |
| IsGenericType |
Pobiera wartość wskazującą, czy bieżący typ jest typem ogólnym. |
| IsGenericTypeDefinition |
Pobiera wartość wskazującą, czy bieżący TypeBuilder reprezentuje definicję typu ogólnego, z której można konstruować inne typy ogólne. |
| IsGenericTypeParameter |
Pobiera wartość wskazującą, czy bieżący Type reprezentuje parametr typu w definicji typu ogólnego. (Odziedziczone po Type) |
| IsImport |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsImport |
Pobiera wartość wskazującąType, czy ComImportAttribute zastosowano atrybut wskazujący, że został zaimportowany z biblioteki typów COM. (Odziedziczone po Type) |
| IsInterface |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsInterface |
Pobiera wartość wskazującą, czy Type element jest interfejsem, czyli nie klasą, czy typem wartości. (Odziedziczone po Type) |
| IsLayoutSequential |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsLayoutSequential |
Pobiera wartość wskazującą, czy pola bieżącego typu są rozmieszczone sekwencyjnie, w kolejności, w której zostały zdefiniowane lub emitowane do metadanych. (Odziedziczone po Type) |
| IsMarshalByRef |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsMarshalByRef |
Pobiera wartość wskazującą, czy Type element jest marshalowany przez odwołanie. (Odziedziczone po Type) |
| IsNested |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsNested |
Pobiera wartość wskazującą, czy bieżący Type obiekt reprezentuje typ, którego definicja jest zagnieżdżona wewnątrz definicji innego typu. (Odziedziczone po Type) |
| IsNestedAssembly |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsNestedAssembly |
Pobiera wartość wskazującą, czy Type obiekt jest zagnieżdżony i widoczny tylko w ramach własnego zestawu. (Odziedziczone po Type) |
| IsNestedFamANDAssem |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsNestedFamANDAssem |
Pobiera wartość wskazującą, czy Type obiekt jest zagnieżdżony i widoczny tylko dla klas należących zarówno do własnej rodziny, jak i własnego zestawu. (Odziedziczone po Type) |
| IsNestedFamily |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsNestedFamily |
Pobiera wartość wskazującą, czy Type obiekt jest zagnieżdżony i widoczny tylko w obrębie własnej rodziny. (Odziedziczone po Type) |
| IsNestedFamORAssem |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsNestedFamORAssem |
Pobiera wartość wskazującą, czy Type obiekt jest zagnieżdżony i widoczny tylko dla klas należących do własnej rodziny, czy do własnego zestawu. (Odziedziczone po Type) |
| IsNestedPrivate |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsNestedPrivate |
Pobiera wartość wskazującą, czy Type obiekt jest zagnieżdżony i zadeklarowany jako prywatny. (Odziedziczone po Type) |
| IsNestedPublic |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsNestedPublic |
Pobiera wartość wskazującą, czy klasa jest zagnieżdżona i zadeklarowana publicznie. (Odziedziczone po Type) |
| IsNotPublic |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsNotPublic |
Pobiera wartość wskazującą, czy Type element nie jest zadeklarowany publicznie. (Odziedziczone po Type) |
| IsPointer |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsPointer |
Pobiera wartość wskazującą, czy Type wskaźnik jest wskaźnikiem. (Odziedziczone po Type) |
| IsPrimitive |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsPrimitive |
Pobiera wartość wskazującą, czy Type jest jednym z typów pierwotnych. (Odziedziczone po Type) |
| IsPublic |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsPublic |
Pobiera wartość wskazującą, czy zadeklarowana jest publiczna Type . (Odziedziczone po Type) |
| IsSealed |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsSealed |
Pobiera wartość wskazującą, czy Type zadeklarowana jest zapieczętowana. (Odziedziczone po Type) |
| IsSecurityCritical |
Pobiera wartość wskazującą, czy bieżący typ jest krytyczny dla zabezpieczeń, czy krytyczny dla bezpieczeństwa, a w związku z tym może wykonywać operacje krytyczne. |
| IsSecuritySafeCritical |
Pobiera wartość wskazującą, czy bieżący typ jest krytyczny dla bezpieczeństwa; oznacza to, czy może wykonywać operacje krytyczne i można uzyskać do niego dostęp za pomocą przezroczystego kodu. |
| IsSecurityTransparent |
Pobiera wartość wskazującą, czy bieżący typ jest przezroczysty i dlatego nie może wykonywać operacji krytycznych. |
| IsSerializable |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| IsSerializable |
Przestarzałe.
Pobiera wartość wskazującą, czy Type parametr jest serializowalny. (Odziedziczone po Type) |
| IsSignatureType |
Pobiera wartość wskazującą, czy typ jest typem podpisu. (Odziedziczone po Type) |
| IsSpecialName |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsSpecialName |
Pobiera wartość wskazującą, czy typ ma nazwę, która wymaga specjalnej obsługi. (Odziedziczone po Type) |
| IsSZArray |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| IsTypeDefinition |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| IsUnicodeClass |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsUnicodeClass |
Pobiera wartość wskazującą, czy atrybut formatu ciągu jest wybrany dla elementu |
| IsUnmanagedFunctionPointer |
Pobiera wartość wskazującą, czy bieżący Type jest wskaźnikiem funkcji niezarządzanej. (Odziedziczone po Type) |
| IsValueType |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsValueType |
Pobiera wartość wskazującą, czy Type jest typem wartości. (Odziedziczone po Type) |
| IsVariableBoundArray |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| IsVariableBoundArray |
Pobiera wartość wskazującą, czy typ jest typem tablicy, który może reprezentować tablicę wielowymiarową, czy tablicę z dowolną dolną granicą. (Odziedziczone po Type) |
| IsVisible |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsVisible |
Pobiera wartość wskazującą, czy Type dostęp do elementu można uzyskać za pomocą kodu spoza zestawu. (Odziedziczone po Type) |
| MemberType |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| MemberType |
Pobiera wartość wskazującą MemberTypes , że ten element członkowski jest typem lub typem zagnieżdżonym. (Odziedziczone po Type) |
| MetadataToken |
Pobiera token identyfikujący bieżący moduł dynamiczny w metadanych. |
| MetadataToken |
Pobiera wartość identyfikującą element metadanych. (Odziedziczone po MemberInfo) |
| Module |
Pobiera moduł dynamiczny zawierający tę definicję typu. |
| Name |
Pobiera nazwę tego typu. |
| Namespace |
Pobiera przestrzeń nazw, w której jest zdefiniowana |
| PackingSize |
Pobiera rozmiar pakowania tego typu. |
| PackingSizeCore |
Po zastąpieniu w klasie pochodnej pobiera rozmiar pakowania tego typu. |
| ReflectedType |
Zwraca typ użyty do uzyskania tego typu. |
| Size |
Pobiera całkowity rozmiar typu. |
| SizeCore |
Po zastąpieniu w klasie pochodnej pobiera całkowity rozmiar typu. |
| StructLayoutAttribute |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| StructLayoutAttribute |
Pobiera element StructLayoutAttribute opisujący układ bieżącego typu. (Odziedziczone po Type) |
| TypeHandle |
Nieobsługiwane w modułach dynamicznych. |
| TypeInitializer |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| TypeInitializer |
Pobiera inicjator dla typu. (Odziedziczone po Type) |
| TypeToken |
Zwraca token typu tego typu. |
| UnderlyingSystemType |
Zwraca podstawowy typ systemu dla tego |
| UnderlyingSystemType |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
Metody
| Nazwa | Opis |
|---|---|
| AddDeclarativeSecurity(SecurityAction, PermissionSet) |
Dodaje zabezpieczenia deklaratywne do tego typu. |
| AddInterfaceImplementation(Type) |
Dodaje interfejs implementujący ten typ. |
| AddInterfaceImplementationCore(Type) |
Po zastąpieniu w klasie pochodnej dodaje interfejs implementujący ten typ. |
| AsType() |
Zwraca bieżący typ jako Type obiekt. (Odziedziczone po TypeInfo) |
| CreateType() |
Tworzy Type obiekt dla klasy. Po zdefiniowaniu pól i metod w klasie |
| CreateTypeInfo() |
TypeInfo Pobiera obiekt reprezentujący ten typ. |
| CreateTypeInfoCore() |
Po zastąpieniu w klasie pochodnej pobiera TypeInfo obiekt reprezentujący ten typ. |
| DefineConstructor(MethodAttributes, CallingConventions, Type[], Type[][], Type[][]) |
Dodaje nowy konstruktor do typu z podanymi atrybutami, podpisem i modyfikatorami niestandardowymi. |
| DefineConstructor(MethodAttributes, CallingConventions, Type[]) |
Dodaje nowy konstruktor do typu z podanymi atrybutami i podpisem. |
| DefineConstructorCore(MethodAttributes, CallingConventions, Type[], Type[][], Type[][]) |
Po zastąpieniu w klasie pochodnej dodaje nowy konstruktor do typu z podanymi atrybutami, podpisem i modyfikatorami niestandardowymi. |
| DefineDefaultConstructor(MethodAttributes) |
Definiuje konstruktor bez parametrów. Konstruktor zdefiniowany w tym miejscu po prostu wywoła konstruktor bez parametrów elementu nadrzędnego. |
| DefineDefaultConstructorCore(MethodAttributes) |
Po zastąpieniu w klasie pochodnej definiuje konstruktor bez parametrów. Konstruktor zdefiniowany tutaj wywołuje konstruktor bez parametrów elementu nadrzędnego. |
| DefineEvent(String, EventAttributes, Type) |
Dodaje nowe zdarzenie do typu z daną nazwą, atrybutami i typem zdarzenia. |
| DefineEventCore(String, EventAttributes, Type) |
Po zastąpieniu w klasie pochodnej dodaje nowe zdarzenie do typu z daną nazwą, atrybutami i typem zdarzenia. |
| DefineField(String, Type, FieldAttributes) |
Dodaje nowe pole do typu z daną nazwą, atrybutami i typem pola. |
| DefineField(String, Type, Type[], Type[], FieldAttributes) |
Dodaje nowe pole do typu z daną nazwą, atrybutami, typem pola i modyfikatorami niestandardowymi. |
| DefineFieldCore(String, Type, Type[], Type[], FieldAttributes) |
Po zastąpieniu w klasie pochodnej dodaje nowe pole do typu z daną nazwą, atrybutami, typem pola i modyfikatorami niestandardowymi. |
| DefineGenericParameters(String[]) |
Definiuje parametry typu ogólnego dla bieżącego typu, określając ich liczbę i ich nazwy, oraz zwraca tablicę GenericTypeParameterBuilder obiektów, których można użyć do ustawiania ograniczeń. |
| DefineGenericParametersCore(String[]) |
Po zastąpieniu w klasie pochodnej definiuje ogólne parametry typu dla bieżącego typu, określając ich liczbę i ich nazwy. |
| DefineInitializedData(String, Byte[], FieldAttributes) |
Definiuje zainicjowane pole danych w sekcji sdata przenośnego pliku wykonywalnego (PE). |
| DefineInitializedDataCore(String, Byte[], FieldAttributes) |
Po zastąpieniu w klasie pochodnej definiuje zainicjowane pole danych w sekcji .sdata pliku przenośnego pliku wykonywalnego (PE). |
| DefineMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][]) |
Dodaje nową metodę do typu z określoną nazwą, atrybutami metody, konwencją wywoływania, podpisem metody i modyfikatorami niestandardowymi. |
| DefineMethod(String, MethodAttributes, CallingConventions, Type, Type[]) |
Dodaje nową metodę do typu z określoną nazwą, atrybutami metody, konwencją wywoływania i podpisem metody. |
| DefineMethod(String, MethodAttributes, CallingConventions) |
Dodaje nową metodę do typu z określoną nazwą, atrybutami metody i konwencją wywoływania. |
| DefineMethod(String, MethodAttributes, Type, Type[]) |
Dodaje nową metodę do typu z określoną nazwą, atrybutami metody i podpisem metody. |
| DefineMethod(String, MethodAttributes) |
Dodaje nową metodę do typu z określonymi atrybutami nazwy i metody. |
| DefineMethodCore(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][]) |
Po zastąpieniu w klasie pochodnej dodaje nową metodę do typu z określoną nazwą, atrybutami metody, konwencją wywoływania, sygnaturą metody i modyfikatorami niestandardowymi. |
| DefineMethodOverride(MethodInfo, MethodInfo) |
Określa treść danej metody, która implementuje daną deklarację metody, potencjalnie o innej nazwie. |
| DefineMethodOverrideCore(MethodInfo, MethodInfo) |
Po zastąpieniu w klasie pochodnej określa treść danej metody, która implementuje daną deklarację metody, potencjalnie o innej nazwie. |
| DefineNestedType(String, TypeAttributes, Type, Int32) |
Definiuje typ zagnieżdżony, biorąc pod uwagę jego nazwę, atrybuty, całkowity rozmiar typu i typ, który rozszerza. |
| DefineNestedType(String, TypeAttributes, Type, PackingSize, Int32) |
Definiuje typ zagnieżdżony, biorąc pod uwagę jego nazwę, atrybuty, rozmiar i typ, który rozszerza. |
| DefineNestedType(String, TypeAttributes, Type, PackingSize) |
Definiuje typ zagnieżdżony, biorąc pod uwagę jego nazwę, atrybuty, typ, który rozszerza i rozmiar pakowania. |
| DefineNestedType(String, TypeAttributes, Type, Type[]) |
Definiuje typ zagnieżdżony, biorąc pod uwagę jego nazwę, atrybuty, typ, który rozszerza, oraz interfejsy, które implementuje. |
| DefineNestedType(String, TypeAttributes, Type) |
Definiuje typ zagnieżdżony, biorąc pod uwagę jego nazwę, atrybuty i typ, który rozszerza. |
| DefineNestedType(String, TypeAttributes) |
Definiuje typ zagnieżdżony, biorąc pod uwagę jego nazwę i atrybuty. |
| DefineNestedType(String) |
Definiuje typ zagnieżdżony, biorąc pod uwagę jego nazwę. |
| DefineNestedTypeCore(String, TypeAttributes, Type, Type[], PackingSize, Int32) |
Po zastąpieniu w klasie pochodnej definiuje typ zagnieżdżony, biorąc pod uwagę jego nazwę, atrybuty, rozmiar i typ, który rozszerza. |
| DefinePInvokeMethod(String, String, MethodAttributes, CallingConventions, Type, Type[], CallingConvention, CharSet) |
Definiuje metodę |
| DefinePInvokeMethod(String, String, String, MethodAttributes, CallingConventions, Type, Type[], CallingConvention, CharSet) |
Definiuje metodę nadaną |
| DefinePInvokeMethod(String, String, String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][], CallingConvention, CharSet) |
Definiuje metodę |
| DefinePInvokeMethodCore(String, String, String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][], CallingConvention, CharSet) |
Po zastąpieniu w klasie pochodnej definiuje metodę PInvoke z podaną nazwą, nazwą biblioteki DLL, nazwą punktu wejścia, atrybutami, konwencją wywoływania, typem zwracanym, typami parametrów, flagami PInvoke i modyfikatorami niestandardowymi dla parametrów i typu zwracanego. |
| DefineProperty(String, PropertyAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][]) |
Dodaje nową właściwość do typu z daną nazwą, wywoływaniem konwencji, podpisem właściwości i modyfikatorami niestandardowymi. |
| DefineProperty(String, PropertyAttributes, CallingConventions, Type, Type[]) |
Dodaje nową właściwość do typu z daną nazwą, atrybutami, konwencją wywoływania i podpisem właściwości. |
| DefineProperty(String, PropertyAttributes, Type, Type[], Type[], Type[], Type[][], Type[][]) |
Dodaje nową właściwość do typu z daną nazwą, podpisem właściwości i modyfikatorami niestandardowymi. |
| DefineProperty(String, PropertyAttributes, Type, Type[]) |
Dodaje nową właściwość do typu z podaną nazwą i podpisem właściwości. |
| DefinePropertyCore(String, PropertyAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][]) |
Po zastąpieniu w klasie pochodnej dodaje nową właściwość do typu z daną nazwą, konwencją wywoływania, podpisem właściwości i modyfikatorami niestandardowymi. |
| DefineTypeInitializer() |
Definiuje inicjator dla tego typu. |
| DefineTypeInitializerCore() |
Po zastąpieniu w klasie pochodnej definiuje inicjator dla tego typu. |
| DefineUninitializedData(String, Int32, FieldAttributes) |
Definiuje niezainicjowane pole danych w |
| DefineUninitializedDataCore(String, Int32, FieldAttributes) |
Po zastąpieniu w klasie pochodnej definiuje niezainicjowane pole danych w |
| Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po MemberInfo) |
| Equals(Object) |
Określa, czy podstawowy typ systemu bieżącego Type obiektu jest taki sam jak podstawowy typ systemu określonego Objectobiektu . (Odziedziczone po Type) |
| Equals(Type) |
Określa, czy podstawowy typ systemu bieżącego Type jest taki sam jak podstawowy typ systemu określonego Type. (Odziedziczone po Type) |
| FindInterfaces(TypeFilter, Object) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| FindInterfaces(TypeFilter, Object) |
Zwraca tablicę Type obiektów reprezentujących filtrowaną listę interfejsów zaimplementowanych lub odziedziczonych przez bieżący Typeelement . (Odziedziczone po Type) |
| FindMembers(MemberTypes, BindingFlags, MemberFilter, Object) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| FindMembers(MemberTypes, BindingFlags, MemberFilter, Object) |
Zwraca filtrowaną tablicę MemberInfo obiektów określonego typu składowego. (Odziedziczone po Type) |
| GetArrayRank() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetArrayRank() |
Pobiera liczbę wymiarów w tablicy. (Odziedziczone po Type) |
| GetAttributeFlagsImpl() |
Po zastąpieniu w klasie pochodnej implementuje Attributes właściwość i pobiera bitową kombinację wartości wyliczenia, które wskazują atrybuty skojarzone z Type. |
| GetAttributeFlagsImpl() |
Po zastąpieniu w klasie pochodnej implementuje Attributes właściwość i pobiera bitową kombinację wartości wyliczenia, które wskazują atrybuty skojarzone z Type. (Odziedziczone po Type) |
| GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Wyszukuje konstruktor, którego parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązań i określonej konwencji wywoływania. (Odziedziczone po Type) |
| GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[]) |
Wyszukuje konstruktor, którego parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetConstructor(BindingFlags, Type[]) |
Wyszukuje konstruktor, którego parametry są zgodne z określonymi typami argumentów, przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetConstructor(Type, ConstructorInfo) |
Zwraca konstruktor określonego skonstruowanego typu ogólnego, który odpowiada określonemu konstruktorowi definicji typu ogólnego. |
| GetConstructor(Type[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetConstructor(Type[]) |
Wyszukuje konstruktor wystąpienia publicznego, którego parametry są zgodne z typami w określonej tablicy. (Odziedziczone po Type) |
| GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Po zastąpieniu w klasie pochodnej wyszukuje konstruktor, którego parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania i określonej konwencji wywoływania. |
| GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Po zastąpieniu w klasie pochodnej wyszukuje konstruktor, którego parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania i określonej konwencji wywoływania. (Odziedziczone po Type) |
| GetConstructors() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetConstructors() |
Zwraca wszystkie konstruktory publiczne zdefiniowane dla bieżącego Typeelementu . (Odziedziczone po Type) |
| GetConstructors(BindingFlags) |
Zwraca tablicę ConstructorInfo obiektów reprezentujących konstruktory publiczne i inne niż publiczne zdefiniowane dla tej klasy, zgodnie z definicją. |
| GetConstructors(BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetCustomAttributes(Boolean) |
Zwraca wszystkie atrybuty niestandardowe zdefiniowane dla tego typu. |
| GetCustomAttributes(Type, Boolean) |
Zwraca wszystkie atrybuty niestandardowe bieżącego typu, które można przypisać do określonego typu. |
| GetCustomAttributesData() |
Zwraca listę CustomAttributeData obiektów reprezentujących dane dotyczące atrybutów zastosowanych do elementu członkowskiego docelowego. (Odziedziczone po MemberInfo) |
| GetDeclaredEvent(String) |
Zwraca obiekt reprezentujący określone zdarzenie zadeklarowane przez bieżący typ. (Odziedziczone po TypeInfo) |
| GetDeclaredField(String) |
Zwraca obiekt reprezentujący określone pole zadeklarowane przez bieżący typ. (Odziedziczone po TypeInfo) |
| GetDeclaredMethod(String) |
Zwraca obiekt reprezentujący określoną metodę zadeklarowaną przez bieżący typ. (Odziedziczone po TypeInfo) |
| GetDeclaredMethods(String) |
Zwraca kolekcję zawierającą wszystkie metody zadeklarowane w bieżącym typie, który jest zgodny z określoną nazwą. (Odziedziczone po TypeInfo) |
| GetDeclaredNestedType(String) |
Zwraca obiekt reprezentujący określony typ zagnieżdżony zadeklarowany przez bieżący typ. (Odziedziczone po TypeInfo) |
| GetDeclaredProperty(String) |
Zwraca obiekt reprezentujący określoną właściwość zadeklarowaną przez bieżący typ. (Odziedziczone po TypeInfo) |
| GetDefaultMembers() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetDefaultMembers() |
Wyszukuje elementy członkowskie zdefiniowane dla bieżącego Type , którego DefaultMemberAttribute ustawiono. (Odziedziczone po Type) |
| GetElementType() |
Wywołanie tej metody zawsze zgłasza błąd NotSupportedException. |
| GetEnumName(Object) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetEnumName(Object) |
Zwraca nazwę stałej, która ma określoną wartość dla bieżącego typu wyliczenia. (Odziedziczone po Type) |
| GetEnumNames() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetEnumNames() |
Zwraca nazwy elementów członkowskich bieżącego typu wyliczenia. (Odziedziczone po Type) |
| GetEnumUnderlyingType() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetEnumUnderlyingType() |
Zwraca typ bazowy bieżącego typu wyliczenia. (Odziedziczone po Type) |
| GetEnumValues() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetEnumValues() |
Zwraca tablicę wartości stałych w bieżącym typie wyliczenia. (Odziedziczone po Type) |
| GetEnumValuesAsUnderlyingType() |
Pobiera tablicę wartości stałych typu bazowego tego typu. (Odziedziczone po Type) |
| GetEvent(String, BindingFlags) |
Zwraca zdarzenie o określonej nazwie. |
| GetEvent(String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetEvent(String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetEvent(String) |
EventInfo Zwraca obiekt reprezentujący określone zdarzenie publiczne. (Odziedziczone po Type) |
| GetEvents() |
Zwraca zdarzenia publiczne zadeklarowane lub dziedziczone przez ten typ. |
| GetEvents() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetEvents(BindingFlags) |
Zwraca zdarzenia publiczne i inne niż publiczne zadeklarowane przez ten typ. |
| GetEvents(BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetField(String, BindingFlags) |
Zwraca pole określone przez daną nazwę. |
| GetField(String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetField(String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetField(String) |
Wyszukuje pole publiczne o określonej nazwie. (Odziedziczone po Type) |
| GetField(Type, FieldInfo) |
Zwraca pole określonego skonstruowanego typu ogólnego, które odpowiada określonemu polu definicji typu ogólnego. |
| GetFields() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetFields() |
Zwraca wszystkie pola publiczne bieżącego Typeelementu . (Odziedziczone po Type) |
| GetFields(BindingFlags) |
Zwraca pola publiczne i inne niż publiczne zadeklarowane przez ten typ. |
| GetFields(BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetFunctionPointerCallingConventions() |
Po zastąpieniu w klasie pochodnej zwraca konwencje wywoływania bieżącego wskaźnika Typefunkcji . (Odziedziczone po Type) |
| GetFunctionPointerParameterTypes() |
Po zastąpieniu w klasie pochodnej zwraca typy parametrów bieżącego wskaźnika Typefunkcji . (Odziedziczone po Type) |
| GetFunctionPointerReturnType() |
Po zastąpieniu w klasie pochodnej zwraca zwracany typ bieżącego wskaźnika Typefunkcji . (Odziedziczone po Type) |
| GetGenericArguments() |
Zwraca tablicę Type obiektów reprezentujących argumenty typu typu typu lub parametry typu definicji typu ogólnego. |
| GetGenericArguments() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetGenericParameterConstraints() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetGenericParameterConstraints() |
Zwraca tablicę Type obiektów reprezentujących ograniczenia dla bieżącego parametru typu ogólnego. (Odziedziczone po Type) |
| GetGenericTypeDefinition() |
Zwraca obiekt reprezentujący definicję Type typu ogólnego, z której można uzyskać bieżący typ. |
| GetHashCode() |
Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone po MemberInfo) |
| GetHashCode() |
Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone po Type) |
| GetInterface(String, Boolean) |
Zwraca interfejs zaimplementowany (bezpośrednio lub pośrednio) przez tę klasę z w pełni kwalifikowaną nazwą zgodną z daną nazwą interfejsu. |
| GetInterface(String, Boolean) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetInterface(String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetInterface(String) |
Wyszukuje interfejs o określonej nazwie. (Odziedziczone po Type) |
| GetInterfaceMap(Type) |
Zwraca mapowanie interfejsu dla żądanego interfejsu. |
| GetInterfaces() |
Zwraca tablicę wszystkich interfejsów zaimplementowanych na tym typie i jego typach podstawowych. |
| GetInterfaces() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMember(String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMember(String, BindingFlags) |
Wyszukuje określone elementy członkowskie przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetMember(String, MemberTypes, BindingFlags) |
Zwraca wszystkie elementy członkowskie publiczne i inne niż publiczne zadeklarowane lub dziedziczone przez ten typ zgodnie z określonymi. |
| GetMember(String, MemberTypes, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMember(String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMember(String) |
Wyszukuje publiczne elementy członkowskie o określonej nazwie. (Odziedziczone po Type) |
| GetMembers() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMembers() |
Zwraca wszystkich publicznych członków bieżącego Typeobiektu . (Odziedziczone po Type) |
| GetMembers(BindingFlags) |
Zwraca elementy członkowskie dla publicznych i innych niż publiczne składowe zadeklarowane lub dziedziczone przez ten typ. |
| GetMembers(BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMemberWithSameMetadataDefinitionAs(MemberInfo) |
MemberInfo Wyszukuje wartość dla bieżącej Type wartości zgodnej z określonym MemberInfoelementem . (Odziedziczone po Type) |
| GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Wyszukuje określoną metodę, której parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązań i określonej konwencji wywoływania. (Odziedziczone po Type) |
| GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[]) |
Wyszukuje określoną metodę, której parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetMethod(String, BindingFlags, Type[]) |
Wyszukuje określoną metodę, której parametry są zgodne z określonymi typami argumentów, przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetMethod(String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMethod(String, BindingFlags) |
Wyszukuje określoną metodę przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Wyszukuje określoną metodę, której parametry są zgodne z określoną ogólną liczbą parametrów, typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania i określonej konwencji wywoływania. (Odziedziczone po Type) |
| GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[]) |
Wyszukuje określoną metodę, której parametry są zgodne z określoną ogólną liczbą parametrów, typami argumentów i modyfikatorami przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetMethod(String, Int32, BindingFlags, Type[]) |
Wyszukuje określoną metodę, której parametry są zgodne z określoną ogólną liczbą parametrów i typami argumentów, przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetMethod(String, Int32, Type[], ParameterModifier[]) |
Wyszukuje określoną metodę publiczną, której parametry są zgodne z określoną ogólną liczbą parametrów, typami argumentów i modyfikatorami. (Odziedziczone po Type) |
| GetMethod(String, Int32, Type[]) |
Wyszukuje określoną metodę publiczną, której parametry są zgodne z określoną ogólną liczbą parametrów i typami argumentów. (Odziedziczone po Type) |
| GetMethod(String, Type[], ParameterModifier[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMethod(String, Type[], ParameterModifier[]) |
Wyszukuje określoną metodę publiczną, której parametry są zgodne z określonymi typami argumentów i modyfikatorami. (Odziedziczone po Type) |
| GetMethod(String, Type[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMethod(String, Type[]) |
Wyszukuje określoną metodę publiczną, której parametry są zgodne z określonymi typami argumentów. (Odziedziczone po Type) |
| GetMethod(String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMethod(String) |
Wyszukuje metodę publiczną o określonej nazwie. (Odziedziczone po Type) |
| GetMethod(Type, MethodInfo) |
Zwraca metodę określonego skonstruowanego typu ogólnego, który odpowiada określonej metodzie definicji typu ogólnego. |
| GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Po zastąpieniu w klasie pochodnej wyszukuje określoną metodę, której parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania i określonej konwencji wywoływania. |
| GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Po zastąpieniu w klasie pochodnej wyszukuje określoną metodę, której parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania i określonej konwencji wywoływania. (Odziedziczone po Type) |
| GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
Po zastąpieniu w klasie pochodnej wyszukuje określoną metodę, której parametry są zgodne z określoną ogólną liczbą parametrów, typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania i określonej konwencji wywoływania. (Odziedziczone po Type) |
| GetMethods() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetMethods() |
Zwraca wszystkie publiczne metody bieżącego Typeobiektu . (Odziedziczone po Type) |
| GetMethods(BindingFlags) |
Zwraca wszystkie metody publiczne i inne niż publiczne zadeklarowane lub dziedziczone przez ten typ zgodnie z definicją. |
| GetMethods(BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetNestedType(String, BindingFlags) |
Zwraca typy publiczne i niezagnieżdżone, które są deklarowane przez ten typ. |
| GetNestedType(String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetNestedType(String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetNestedType(String) |
Wyszukuje publiczny typ zagnieżdżony o określonej nazwie. (Odziedziczone po Type) |
| GetNestedTypes() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetNestedTypes() |
Zwraca typy publiczne zagnieżdżone w bieżącym Typeobiekcie . (Odziedziczone po Type) |
| GetNestedTypes(BindingFlags) |
Zwraca typy publiczne i niezagnieżdżone, które są deklarowane lub dziedziczone przez ten typ. |
| GetNestedTypes(BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetNullableUnderlyingType() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetOptionalCustomModifiers() |
Po zastąpieniu w klasie pochodnej zwraca opcjonalne modyfikatory niestandardowe bieżącego Typeelementu . (Odziedziczone po Type) |
| GetProperties() |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetProperties() |
Zwraca wszystkie właściwości publiczne bieżącego Typeelementu . (Odziedziczone po Type) |
| GetProperties(BindingFlags) |
Zwraca wszystkie właściwości publiczne i inne niż publiczne zadeklarowane lub dziedziczone przez ten typ, zgodnie z definicją. |
| GetProperties(BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]) |
Wyszukuje określoną właściwość, której parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetProperty(String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetProperty(String, BindingFlags) |
Wyszukuje określoną właściwość przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetProperty(String, Type, Type[], ParameterModifier[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetProperty(String, Type, Type[], ParameterModifier[]) |
Wyszukuje określoną właściwość publiczną, której parametry są zgodne z określonymi typami argumentów i modyfikatorami. (Odziedziczone po Type) |
| GetProperty(String, Type, Type[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetProperty(String, Type, Type[]) |
Wyszukuje określoną właściwość publiczną, której parametry są zgodne z określonymi typami argumentów. (Odziedziczone po Type) |
| GetProperty(String, Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetProperty(String, Type) |
Wyszukuje właściwość publiczną o określonej nazwie i typie zwracania. (Odziedziczone po Type) |
| GetProperty(String, Type[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetProperty(String, Type[]) |
Wyszukuje określoną właściwość publiczną, której parametry są zgodne z określonymi typami argumentów. (Odziedziczone po Type) |
| GetProperty(String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| GetProperty(String) |
Wyszukuje właściwość publiczną o określonej nazwie. (Odziedziczone po Type) |
| GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]) |
Po zastąpieniu w klasie pochodnej wyszukuje określoną właściwość, której parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania. |
| GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]) |
Po zastąpieniu w klasie pochodnej wyszukuje określoną właściwość, której parametry są zgodne z określonymi typami argumentów i modyfikatorami, przy użyciu określonych ograniczeń powiązania. (Odziedziczone po Type) |
| GetRequiredCustomModifiers() |
Po zastąpieniu w klasie pochodnej zwraca wymagane modyfikatory niestandardowe bieżącego Typeelementu . (Odziedziczone po Type) |
| GetType() |
Pobiera bieżący Typeelement . (Odziedziczone po Type) |
| GetTypeCodeImpl() |
Zwraca podstawowy kod typu tego Type wystąpienia. (Odziedziczone po Type) |
| HasElementTypeImpl() |
Po zastąpieniu w klasie pochodnej implementuje HasElementType właściwość i określa, czy bieżący Type obejmuje lub odwołuje się do innego typu, czyli czy bieżący Type jest tablicą, wskaźnikiem, czy jest przekazywany przez odwołanie. |
| HasElementTypeImpl() |
Po zastąpieniu w klasie pochodnej implementuje HasElementType właściwość i określa, czy bieżący Type obejmuje lub odwołuje się do innego typu, czyli czy bieżący Type jest tablicą, wskaźnikiem, czy jest przekazywany przez odwołanie. (Odziedziczone po Type) |
| HasSameMetadataDefinitionAs(MemberInfo) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po MemberInfo) |
| InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo) |
Wywołuje określony element członkowski przy użyciu określonych ograniczeń powiązania i dopasowywania określonej listy argumentów i kultury. (Odziedziczone po Type) |
| InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) |
Wywołuje określony element członkowski. Wywoływana metoda musi być dostępna i zapewnić najbardziej specyficzne dopasowanie z określoną listą argumentów w ramach ograniczeń określonych atrybutów powiązania i wywołania. |
| InvokeMember(String, BindingFlags, Binder, Object, Object[]) |
Wywołuje określony element członkowski przy użyciu określonych ograniczeń powiązania i dopasowywania określonej listy argumentów. (Odziedziczone po Type) |
| IsArrayImpl() |
Podczas zastępowania w klasie pochodnej implementuje IsArray właściwość i określa, czy Type jest tablicą. |
| IsArrayImpl() |
Podczas zastępowania w klasie pochodnej implementuje IsArray właściwość i określa, czy Type jest tablicą. (Odziedziczone po Type) |
| IsAssignableFrom(Type) |
Pobiera wartość wskazującą, czy Type określony można przypisać do tego obiektu. |
| IsAssignableFrom(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsAssignableFrom(TypeInfo) |
Pobiera wartość wskazującą, czy określony TypeInfo obiekt można przypisać do tego obiektu. |
| IsAssignableTo(Type) |
Określa, czy bieżący typ można przypisać do zmiennej określonego |
| IsByRefImpl() |
Po zastąpieniu w klasie pochodnej implementuje IsByRef właściwość i określa, czy Type obiekt jest przekazywany przez odwołanie. |
| IsByRefImpl() |
Po zastąpieniu w klasie pochodnej implementuje IsByRef właściwość i określa, czy Type obiekt jest przekazywany przez odwołanie. (Odziedziczone po Type) |
| IsCOMObjectImpl() |
Podczas zastępowania w klasie pochodnej implementuje IsCOMObject właściwość i określa, czy Type obiekt COM jest obiektem COM. |
| IsCOMObjectImpl() |
Podczas zastępowania w klasie pochodnej implementuje IsCOMObject właściwość i określa, czy Type obiekt COM jest obiektem COM. (Odziedziczone po Type) |
| IsContextfulImpl() |
Implementuje IsContextful właściwość i określa, czy Type można go hostować w kontekście. (Odziedziczone po Type) |
| IsCreated() |
Zwraca wartość wskazującą, czy został utworzony bieżący typ dynamiczny. |
| IsCreatedCore() |
Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy został utworzony bieżący typ dynamiczny. |
| IsDefined(Type, Boolean) |
Określa, czy atrybut niestandardowy jest stosowany do bieżącego typu. |
| IsEnumDefined(Object) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsEnumDefined(Object) |
Zwraca wartość wskazującą, czy określona wartość istnieje w bieżącym typie wyliczenia. (Odziedziczone po Type) |
| IsEquivalentTo(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsEquivalentTo(Type) |
Określa, czy dwa typy COM mają tę samą tożsamość i kwalifikują się do równoważności typów. (Odziedziczone po Type) |
| IsInstanceOfType(Object) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsInstanceOfType(Object) |
Określa, czy określony obiekt jest wystąpieniem bieżącego Typeobiektu . (Odziedziczone po Type) |
| IsMarshalByRefImpl() |
Implementuje IsMarshalByRef właściwość i określa, czy Type element jest marshaled przez odwołanie. (Odziedziczone po Type) |
| IsPointerImpl() |
Podczas zastępowania w klasie pochodnej implementuje IsPointer właściwość i określa, czy Type jest wskaźnikiem. |
| IsPointerImpl() |
Podczas zastępowania w klasie pochodnej implementuje IsPointer właściwość i określa, czy Type jest wskaźnikiem. (Odziedziczone po Type) |
| IsPrimitiveImpl() |
Podczas zastępowania w klasie pochodnej implementuje IsPrimitive właściwość i określa, czy Type jest jednym z typów pierwotnych. |
| IsPrimitiveImpl() |
Podczas zastępowania w klasie pochodnej implementuje IsPrimitive właściwość i określa, czy Type jest jednym z typów pierwotnych. (Odziedziczone po Type) |
| IsSubclassOf(Type) |
Określa, czy ten typ pochodzi z określonego typu. |
| IsSubclassOf(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po TypeInfo) |
| IsValueTypeImpl() |
Implementuje IsValueType właściwość i określa, czy Type jest to typ wartości, czyli klasa, czy interfejs. (Odziedziczone po Type) |
| MakeArrayType() |
Type Zwraca obiekt reprezentujący jednowymiarową tablicę bieżącego typu z dolną granicą zera. |
| MakeArrayType(Int32) |
Type Zwraca obiekt reprezentujący tablicę bieżącego typu z określoną liczbą wymiarów. |
| MakeByRefType() |
Zwraca obiekt Type, który reprezentuje bieżący typ po przekazaniu jako parametr |
| MakeFunctionPointerType(Type[], Boolean) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. (Odziedziczone po Type) |
| MakeGenericType(Type[]) |
Podstawia elementy tablicy typów dla parametrów typu bieżącej definicji typu ogólnego i zwraca wynikowy skonstruowany typ. |
| MakePointerType() |
Type Zwraca obiekt reprezentujący typ niezarządzanego wskaźnika do bieżącego typu. |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
| SetCustomAttribute(ConstructorInfo, Byte[]) |
Ustawia atrybut niestandardowy przy użyciu określonego obiektu blob atrybutu niestandardowego. |
| SetCustomAttribute(CustomAttributeBuilder) |
Ustaw atrybut niestandardowy przy użyciu konstruktora atrybutów niestandardowych. |
| SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
Po zastąpieniu w klasie pochodnej ustawia atrybut niestandardowy dla tego zestawu. |
| SetParent(Type) |
Ustawia typ podstawowy typu aktualnie w budowie. |
| SetParentCore(Type) |
Po zastąpieniu w klasie pochodnej ustawia typ podstawowy typu aktualnie w budowie. |
| ToString() |
Zwraca nazwę typu z wyłączeniem przestrzeni nazw. |
Jawne implementacje interfejsu
| Nazwa | Opis |
|---|---|
| _MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po MemberInfo) |
| _MemberInfo.GetType() |
Pobiera obiekt reprezentujący klasę TypeMemberInfo . (Odziedziczone po MemberInfo) |
| _MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu. (Odziedziczone po MemberInfo) |
| _MemberInfo.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po MemberInfo) |
| _MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt. (Odziedziczone po MemberInfo) |
| _Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Type) |
| _Type.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu. (Odziedziczone po Type) |
| _Type.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Type) |
| _Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt. (Odziedziczone po Type) |
| _TypeBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. |
| _TypeBuilder.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu. |
| _TypeBuilder.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). |
| _TypeBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt. |
| ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Zwraca tablicę wszystkich atrybutów niestandardowych zdefiniowanych w tym elemencie członkowskim, z wyłączeniem nazwanych atrybutów lub pustej tablicy, jeśli nie ma atrybutów niestandardowych. (Odziedziczone po MemberInfo) |
| ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Zwraca tablicę atrybutów niestandardowych zdefiniowanych na tym elemencie członkowskim, zidentyfikowaną przez typ lub pustą tablicę, jeśli nie ma atrybutów niestandardowych tego typu. (Odziedziczone po MemberInfo) |
| ICustomAttributeProvider.IsDefined(Type, Boolean) |
Wskazuje, czy na tym elemencie |
| IReflectableType.GetTypeInfo() |
Zwraca reprezentację bieżącego typu jako TypeInfo obiektu. (Odziedziczone po TypeInfo) |
Metody rozszerzania
| Nazwa | Opis |
|---|---|
| GetConstructor(Type, Type[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetConstructors(Type, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetConstructors(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetCustomAttribute(MemberInfo, Type, Boolean) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego. |
| GetCustomAttribute(MemberInfo, Type) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego. |
| GetCustomAttribute<T>(MemberInfo, Boolean) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego. |
| GetCustomAttribute<T>(MemberInfo) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego. |
| GetCustomAttributes(MemberInfo, Boolean) |
Pobiera kolekcję atrybutów niestandardowych, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego. |
| GetCustomAttributes(MemberInfo, Type, Boolean) |
Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego. |
| GetCustomAttributes(MemberInfo, Type) |
Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego. |
| GetCustomAttributes(MemberInfo) |
Pobiera kolekcję atrybutów niestandardowych, które są stosowane do określonego elementu członkowskiego. |
| GetCustomAttributes<T>(MemberInfo, Boolean) |
Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego. |
| GetCustomAttributes<T>(MemberInfo) |
Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego. |
| GetDefaultMembers(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetEvent(Type, String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetEvent(Type, String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetEvents(Type, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetEvents(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetField(Type, String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetField(Type, String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetFields(Type, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetFields(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetGenericArguments(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetInterfaces(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetMember(Type, String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetMember(Type, String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetMembers(Type, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetMembers(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetMetadataToken(MemberInfo) |
Pobiera token metadanych dla danego elementu członkowskiego, jeśli jest dostępny. |
| GetMethod(Type, String, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetMethod(Type, String, Type[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetMethods(Type, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetMethods(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetNestedTypes(Type, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetProperties(Type, BindingFlags) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetProperties(Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetProperty(Type, String, Type, Type[]) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetProperty(Type, String, Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetProperty(Type, String) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| GetRuntimeEvent(Type, String) |
Pobiera obiekt reprezentujący określone zdarzenie. |
| GetRuntimeEvents(Type) |
Pobiera kolekcję reprezentującą wszystkie zdarzenia zdefiniowane w określonym typie. |
| GetRuntimeField(Type, String) |
Pobiera obiekt reprezentujący określone pole. |
| GetRuntimeFields(Type) |
Pobiera kolekcję reprezentującą wszystkie pola zdefiniowane w określonym typie. |
| GetRuntimeInterfaceMap(TypeInfo, Type) |
Zwraca mapowanie interfejsu dla określonego typu i określonego interfejsu. |
| GetRuntimeMethod(Type, String, Type[]) |
Pobiera obiekt reprezentujący określoną metodę. |
| GetRuntimeMethods(Type) |
Pobiera kolekcję reprezentującą wszystkie metody zdefiniowane w określonym typie. |
| GetRuntimeProperties(Type) |
Pobiera kolekcję reprezentującą wszystkie właściwości zdefiniowane w określonym typie. |
| GetRuntimeProperty(Type, String) |
Pobiera obiekt reprezentujący określoną właściwość. |
| GetTypeInfo(Type) |
Zwraca reprezentację TypeInfo określonego typu. |
| HasMetadataToken(MemberInfo) |
Zwraca wartość wskazującą, czy token metadanych jest dostępny dla określonego elementu członkowskiego. |
| IsAssignableFrom(Type, Type) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |
| IsDefined(MemberInfo, Type, Boolean) |
Wskazuje, czy atrybuty niestandardowe określonego typu są stosowane do określonego elementu członkowskiego, a opcjonalnie stosowane do jego elementów nadrzędnych. |
| IsDefined(MemberInfo, Type) |
Wskazuje, czy atrybuty niestandardowe określonego typu są stosowane do określonego elementu członkowskiego. |
| IsInstanceOfType(Type, Object) |
Definiuje i tworzy nowe wystąpienia klas w czasie wykonywania. |