ConstructorBuilder Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce e rappresenta un costruttore di una classe dinamica.
public ref class ConstructorBuilder sealed : System::Reflection::ConstructorInfo
public ref class ConstructorBuilder abstract : System::Reflection::ConstructorInfo
public ref class ConstructorBuilder sealed : System::Reflection::ConstructorInfo, System::Runtime::InteropServices::_ConstructorBuilder
public sealed class ConstructorBuilder : System.Reflection.ConstructorInfo
public abstract class ConstructorBuilder : System.Reflection.ConstructorInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class ConstructorBuilder : System.Reflection.ConstructorInfo, System.Runtime.InteropServices._ConstructorBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ConstructorBuilder : System.Reflection.ConstructorInfo, System.Runtime.InteropServices._ConstructorBuilder
type ConstructorBuilder = class
inherit ConstructorInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type ConstructorBuilder = class
inherit ConstructorInfo
interface _ConstructorBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ConstructorBuilder = class
inherit ConstructorInfo
interface _ConstructorBuilder
Public NotInheritable Class ConstructorBuilder
Inherits ConstructorInfo
Public MustInherit Class ConstructorBuilder
Inherits ConstructorInfo
Public NotInheritable Class ConstructorBuilder
Inherits ConstructorInfo
Implements _ConstructorBuilder
- Ereditarietà
- Attributi
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato l'utilizzo contestuale di un ConstructorBuilder
oggetto .
using namespace System;
using namespace System::Threading;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
Type^ DynamicPointTypeGen()
{
Type^ pointType = nullptr;
array<Type^>^temp0 = {int::typeid,int::typeid,int::typeid};
array<Type^>^ctorParams = temp0;
AppDomain^ myDomain = Thread::GetDomain();
AssemblyName^ myAsmName = gcnew AssemblyName;
myAsmName->Name = "MyDynamicAssembly";
AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( myAsmName, AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ pointModule = myAsmBuilder->DefineDynamicModule( "PointModule", "Point.dll" );
TypeBuilder^ pointTypeBld = pointModule->DefineType( "Point", TypeAttributes::Public );
FieldBuilder^ xField = pointTypeBld->DefineField( "x", int::typeid, FieldAttributes::Public );
FieldBuilder^ yField = pointTypeBld->DefineField( "y", int::typeid, FieldAttributes::Public );
FieldBuilder^ zField = pointTypeBld->DefineField( "z", int::typeid, FieldAttributes::Public );
Type^ objType = Type::GetType( "System.Object" );
ConstructorInfo^ objCtor = objType->GetConstructor( gcnew array<Type^>(0) );
ConstructorBuilder^ pointCtor = pointTypeBld->DefineConstructor( MethodAttributes::Public, CallingConventions::Standard, ctorParams );
ILGenerator^ ctorIL = pointCtor->GetILGenerator();
// NOTE: ldarg.0 holds the "this" reference - ldarg.1, ldarg.2, and ldarg.3
// hold the actual passed parameters. ldarg.0 is used by instance methods
// to hold a reference to the current calling bject instance. Static methods
// do not use arg.0, since they are not instantiated and hence no reference
// is needed to distinguish them.
ctorIL->Emit( OpCodes::Ldarg_0 );
// Here, we wish to create an instance of System::Object by invoking its
// constructor, as specified above.
ctorIL->Emit( OpCodes::Call, objCtor );
// Now, we'll load the current instance in arg 0, along
// with the value of parameter "x" stored in arg 1, into stfld.
ctorIL->Emit( OpCodes::Ldarg_0 );
ctorIL->Emit( OpCodes::Ldarg_1 );
ctorIL->Emit( OpCodes::Stfld, xField );
// Now, we store arg 2 "y" in the current instance with stfld.
ctorIL->Emit( OpCodes::Ldarg_0 );
ctorIL->Emit( OpCodes::Ldarg_2 );
ctorIL->Emit( OpCodes::Stfld, yField );
// Last of all, arg 3 "z" gets stored in the current instance.
ctorIL->Emit( OpCodes::Ldarg_0 );
ctorIL->Emit( OpCodes::Ldarg_3 );
ctorIL->Emit( OpCodes::Stfld, zField );
// Our work complete, we return.
ctorIL->Emit( OpCodes::Ret );
// Now, let's create three very simple methods so we can see our fields.
array<String^>^temp1 = {"GetX","GetY","GetZ"};
array<String^>^mthdNames = temp1;
System::Collections::IEnumerator^ myEnum = mthdNames->GetEnumerator();
while ( myEnum->MoveNext() )
{
String^ mthdName = safe_cast<String^>(myEnum->Current);
MethodBuilder^ getFieldMthd = pointTypeBld->DefineMethod( mthdName, MethodAttributes::Public, int::typeid, nullptr );
ILGenerator^ mthdIL = getFieldMthd->GetILGenerator();
mthdIL->Emit( OpCodes::Ldarg_0 );
if ( mthdName->Equals( "GetX" ) )
mthdIL->Emit( OpCodes::Ldfld, xField );
else
if ( mthdName->Equals( "GetY" ) )
mthdIL->Emit( OpCodes::Ldfld, yField );
else
if ( mthdName->Equals( "GetZ" ) )
mthdIL->Emit( OpCodes::Ldfld, zField );
mthdIL->Emit( OpCodes::Ret );
}
pointType = pointTypeBld->CreateType();
// Let's save it, just for posterity.
myAsmBuilder->Save( "Point.dll" );
return pointType;
}
int main()
{
Type^ myDynamicType = nullptr;
Object^ aPoint = nullptr;
array<Type^>^temp2 = {int::typeid,int::typeid,int::typeid};
array<Type^>^aPtypes = temp2;
array<Object^>^temp3 = {4,5,6};
array<Object^>^aPargs = temp3;
// Call the method to build our dynamic class.
myDynamicType = DynamicPointTypeGen();
Console::WriteLine( "Some information about my new Type '{0}':", myDynamicType->FullName );
Console::WriteLine( "Assembly: '{0}'", myDynamicType->Assembly );
Console::WriteLine( "Attributes: '{0}'", myDynamicType->Attributes );
Console::WriteLine( "Module: '{0}'", myDynamicType->Module );
Console::WriteLine( "Members: " );
System::Collections::IEnumerator^ myEnum = myDynamicType->GetMembers()->GetEnumerator();
while ( myEnum->MoveNext() )
{
MemberInfo^ member = safe_cast<MemberInfo^>(myEnum->Current);
Console::WriteLine( "-- {0} {1};", member->MemberType, member->Name );
}
Console::WriteLine( "---" );
// Let's take a look at the constructor we created.
ConstructorInfo^ myDTctor = myDynamicType->GetConstructor( aPtypes );
Console::WriteLine( "Constructor: {0};", myDTctor );
Console::WriteLine( "---" );
// Now, we get to use our dynamically-created class by invoking the constructor.
aPoint = myDTctor->Invoke( aPargs );
Console::WriteLine( "aPoint is type {0}.", aPoint->GetType() );
// Finally, let's reflect on the instance of our new type - aPoint - and
// make sure everything proceeded according to plan.
Console::WriteLine( "aPoint.x = {0}", myDynamicType->InvokeMember( "GetX", BindingFlags::InvokeMethod, nullptr, aPoint, gcnew array<Object^>(0) ) );
Console::WriteLine( "aPoint.y = {0}", myDynamicType->InvokeMember( "GetY", BindingFlags::InvokeMethod, nullptr, aPoint, gcnew array<Object^>(0) ) );
Console::WriteLine( "aPoint.z = {0}", myDynamicType->InvokeMember( "GetZ", BindingFlags::InvokeMethod, nullptr, aPoint, gcnew array<Object^>(0) ) );
// +++ OUTPUT +++
// Some information about my new Type 'Point':
// Assembly: 'MyDynamicAssembly, Version=0.0.0.0'
// Attributes: 'AutoLayout, AnsiClass, NotPublic, Public'
// Module: 'PointModule'
// Members:
// -- Field x;
// -- Field y;
// -- Field z;
// -- Method GetHashCode;
// -- Method Equals;
// -- Method ToString;
// -- Method GetType;
// -- Constructor .ctor;
// ---
// Constructor: Void .ctor(Int32, Int32, Int32);
// ---
// aPoint is type Point.
// aPoint.x = 4
// aPoint.y = 5
// aPoint.z = 6
}
using System;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;
class TestCtorBuilder {
public static Type DynamicPointTypeGen() {
Type pointType = null;
Type[] ctorParams = new Type[] {typeof(int),
typeof(int),
typeof(int)};
AppDomain myDomain = Thread.GetDomain();
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "MyDynamicAssembly";
AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
myAsmName,
AssemblyBuilderAccess.RunAndSave);
ModuleBuilder pointModule = myAsmBuilder.DefineDynamicModule("PointModule",
"Point.dll");
TypeBuilder pointTypeBld = pointModule.DefineType("Point",
TypeAttributes.Public);
FieldBuilder xField = pointTypeBld.DefineField("x", typeof(int),
FieldAttributes.Public);
FieldBuilder yField = pointTypeBld.DefineField("y", typeof(int),
FieldAttributes.Public);
FieldBuilder zField = pointTypeBld.DefineField("z", typeof(int),
FieldAttributes.Public);
Type objType = Type.GetType("System.Object");
ConstructorInfo objCtor = objType.GetConstructor(new Type[0]);
ConstructorBuilder pointCtor = pointTypeBld.DefineConstructor(
MethodAttributes.Public,
CallingConventions.Standard,
ctorParams);
ILGenerator ctorIL = pointCtor.GetILGenerator();
// NOTE: ldarg.0 holds the "this" reference - ldarg.1, ldarg.2, and ldarg.3
// hold the actual passed parameters. ldarg.0 is used by instance methods
// to hold a reference to the current calling object instance. Static methods
// do not use arg.0, since they are not instantiated and hence no reference
// is needed to distinguish them.
ctorIL.Emit(OpCodes.Ldarg_0);
// Here, we wish to create an instance of System.Object by invoking its
// constructor, as specified above.
ctorIL.Emit(OpCodes.Call, objCtor);
// Now, we'll load the current instance ref in arg 0, along
// with the value of parameter "x" stored in arg 1, into stfld.
ctorIL.Emit(OpCodes.Ldarg_0);
ctorIL.Emit(OpCodes.Ldarg_1);
ctorIL.Emit(OpCodes.Stfld, xField);
// Now, we store arg 2 "y" in the current instance with stfld.
ctorIL.Emit(OpCodes.Ldarg_0);
ctorIL.Emit(OpCodes.Ldarg_2);
ctorIL.Emit(OpCodes.Stfld, yField);
// Last of all, arg 3 "z" gets stored in the current instance.
ctorIL.Emit(OpCodes.Ldarg_0);
ctorIL.Emit(OpCodes.Ldarg_3);
ctorIL.Emit(OpCodes.Stfld, zField);
// Our work complete, we return.
ctorIL.Emit(OpCodes.Ret);
// Now, let's create three very simple methods so we can see our fields.
string[] mthdNames = new string[] {"GetX", "GetY", "GetZ"};
foreach (string mthdName in mthdNames) {
MethodBuilder getFieldMthd = pointTypeBld.DefineMethod(
mthdName,
MethodAttributes.Public,
typeof(int),
null);
ILGenerator mthdIL = getFieldMthd.GetILGenerator();
mthdIL.Emit(OpCodes.Ldarg_0);
switch (mthdName) {
case "GetX": mthdIL.Emit(OpCodes.Ldfld, xField);
break;
case "GetY": mthdIL.Emit(OpCodes.Ldfld, yField);
break;
case "GetZ": mthdIL.Emit(OpCodes.Ldfld, zField);
break;
}
mthdIL.Emit(OpCodes.Ret);
}
// Finally, we create the type.
pointType = pointTypeBld.CreateType();
// Let's save it, just for posterity.
myAsmBuilder.Save("Point.dll");
return pointType;
}
public static void Main() {
Type myDynamicType = null;
object aPoint = null;
Type[] aPtypes = new Type[] {typeof(int), typeof(int), typeof(int)};
object[] aPargs = new object[] {4, 5, 6};
// Call the method to build our dynamic class.
myDynamicType = DynamicPointTypeGen();
Console.WriteLine("Some information about my new Type '{0}':",
myDynamicType.FullName);
Console.WriteLine("Assembly: '{0}'", myDynamicType.Assembly);
Console.WriteLine("Attributes: '{0}'", myDynamicType.Attributes);
Console.WriteLine("Module: '{0}'", myDynamicType.Module);
Console.WriteLine("Members: ");
foreach (MemberInfo member in myDynamicType.GetMembers()) {
Console.WriteLine("-- {0} {1};", member.MemberType, member.Name);
}
Console.WriteLine("---");
// Let's take a look at the constructor we created.
ConstructorInfo myDTctor = myDynamicType.GetConstructor(aPtypes);
Console.WriteLine("Constructor: {0};", myDTctor.ToString());
Console.WriteLine("---");
// Now, we get to use our dynamically-created class by invoking the constructor.
aPoint = myDTctor.Invoke(aPargs);
Console.WriteLine("aPoint is type {0}.", aPoint.GetType());
// Finally, let's reflect on the instance of our new type - aPoint - and
// make sure everything proceeded according to plan.
Console.WriteLine("aPoint.x = {0}",
myDynamicType.InvokeMember("GetX",
BindingFlags.InvokeMethod,
null,
aPoint,
new object[0]));
Console.WriteLine("aPoint.y = {0}",
myDynamicType.InvokeMember("GetY",
BindingFlags.InvokeMethod,
null,
aPoint,
new object[0]));
Console.WriteLine("aPoint.z = {0}",
myDynamicType.InvokeMember("GetZ",
BindingFlags.InvokeMethod,
null,
aPoint,
new object[0]));
// +++ OUTPUT +++
// Some information about my new Type 'Point':
// Assembly: 'MyDynamicAssembly, Version=0.0.0.0'
// Attributes: 'AutoLayout, AnsiClass, NotPublic, Public'
// Module: 'PointModule'
// Members:
// -- Field x;
// -- Field y;
// -- Field z;
// -- Method GetHashCode;
// -- Method Equals;
// -- Method ToString;
// -- Method GetType;
// -- Constructor .ctor;
// ---
// Constructor: Void .ctor(Int32, Int32, Int32);
// ---
// aPoint is type Point.
// aPoint.x = 4
// aPoint.y = 5
// aPoint.z = 6
}
}
Imports System.Threading
Imports System.Reflection
Imports System.Reflection.Emit
_
Class TestCtorBuilder
Public Shared Function DynamicPointTypeGen() As Type
Dim pointType 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 = "MyDynamicAssembly"
Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.RunAndSave)
Dim pointModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule("PointModule", "Point.dll")
Dim pointTypeBld As TypeBuilder = pointModule.DefineType("Point", TypeAttributes.Public)
Dim xField As FieldBuilder = pointTypeBld.DefineField("x", GetType(Integer), FieldAttributes.Public)
Dim yField As FieldBuilder = pointTypeBld.DefineField("y", GetType(Integer), FieldAttributes.Public)
Dim zField As FieldBuilder = pointTypeBld.DefineField("z", GetType(Integer), FieldAttributes.Public)
Dim objType As Type = Type.GetType("System.Object")
Dim objCtor As ConstructorInfo = objType.GetConstructor(New Type() {})
Dim pointCtor As ConstructorBuilder = pointTypeBld.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, ctorParams)
Dim ctorIL As ILGenerator = pointCtor.GetILGenerator()
' NOTE: ldarg.0 holds the "this" reference - ldarg.1, ldarg.2, and ldarg.3
' hold the actual passed parameters. ldarg.0 is used by instance methods
' to hold a reference to the current calling object instance. Static methods
' do not use arg.0, since they are not instantiated and hence no reference
' is needed to distinguish them.
ctorIL.Emit(OpCodes.Ldarg_0)
' Here, we wish to create an instance of System.Object by invoking its
' constructor, as specified above.
ctorIL.Emit(OpCodes.Call, objCtor)
' Now, we'll load the current instance ref in arg 0, along
' with the value of parameter "x" stored in arg 1, into stfld.
ctorIL.Emit(OpCodes.Ldarg_0)
ctorIL.Emit(OpCodes.Ldarg_1)
ctorIL.Emit(OpCodes.Stfld, xField)
' Now, we store arg 2 "y" in the current instance with stfld.
ctorIL.Emit(OpCodes.Ldarg_0)
ctorIL.Emit(OpCodes.Ldarg_2)
ctorIL.Emit(OpCodes.Stfld, yField)
' Last of all, arg 3 "z" gets stored in the current instance.
ctorIL.Emit(OpCodes.Ldarg_0)
ctorIL.Emit(OpCodes.Ldarg_3)
ctorIL.Emit(OpCodes.Stfld, zField)
' Our work complete, we return.
ctorIL.Emit(OpCodes.Ret)
' Now, let's create three very simple methods so we can see our fields.
Dim mthdNames() As String = {"GetX", "GetY", "GetZ"}
Dim mthdName As String
For Each mthdName In mthdNames
Dim getFieldMthd As MethodBuilder = pointTypeBld.DefineMethod(mthdName, MethodAttributes.Public, GetType(Integer), Nothing)
Dim mthdIL As ILGenerator = getFieldMthd.GetILGenerator()
mthdIL.Emit(OpCodes.Ldarg_0)
Select Case mthdName
Case "GetX"
mthdIL.Emit(OpCodes.Ldfld, xField)
Case "GetY"
mthdIL.Emit(OpCodes.Ldfld, yField)
Case "GetZ"
mthdIL.Emit(OpCodes.Ldfld, zField)
End Select
mthdIL.Emit(OpCodes.Ret)
Next mthdName
' Finally, we create the type.
pointType = pointTypeBld.CreateType()
' Let's save it, just for posterity.
myAsmBuilder.Save("Point.dll")
Return pointType
End Function 'DynamicPointTypeGen
Public Shared Sub Main()
Dim myDynamicType As Type = Nothing
Dim aPoint As Object = Nothing
Dim aPtypes() As Type = {GetType(Integer), GetType(Integer), GetType(Integer)}
Dim aPargs() As Object = {4, 5, 6}
' Call the method to build our dynamic class.
myDynamicType = DynamicPointTypeGen()
Console.WriteLine("Some information about my new Type '{0}':", myDynamicType.FullName)
Console.WriteLine("Assembly: '{0}'", myDynamicType.Assembly)
Console.WriteLine("Attributes: '{0}'", myDynamicType.Attributes)
Console.WriteLine("Module: '{0}'", myDynamicType.Module)
Console.WriteLine("Members: ")
Dim member As MemberInfo
For Each member In myDynamicType.GetMembers()
Console.WriteLine("-- {0} {1};", member.MemberType, member.Name)
Next member
Console.WriteLine("---")
' Let's take a look at the constructor we created.
Dim myDTctor As ConstructorInfo = myDynamicType.GetConstructor(aPtypes)
Console.WriteLine("Constructor: {0};", myDTctor.ToString())
Console.WriteLine("---")
' Now, we get to use our dynamically-created class by invoking the constructor.
aPoint = myDTctor.Invoke(aPargs)
Console.WriteLine("aPoint is type {0}.", aPoint.GetType())
' Finally, let's reflect on the instance of our new type - aPoint - and
' make sure everything proceeded according to plan.
Console.WriteLine("aPoint.x = {0}", myDynamicType.InvokeMember("GetX", BindingFlags.InvokeMethod, Nothing, aPoint, New Object() {}))
Console.WriteLine("aPoint.y = {0}", myDynamicType.InvokeMember("GetY", BindingFlags.InvokeMethod, Nothing, aPoint, New Object() {}))
Console.WriteLine("aPoint.z = {0}", myDynamicType.InvokeMember("GetZ", BindingFlags.InvokeMethod, Nothing, aPoint, New Object() {}))
End Sub
End Class
' +++ OUTPUT +++
' Some information about my new Type 'Point':
' Assembly: 'MyDynamicAssembly, Version=0.0.0.0'
' Attributes: 'AutoLayout, AnsiClass, NotPublic, Public'
' Module: 'PointModule'
' Members:
' -- Field x;
' -- Field y;
' -- Field z;
' -- Method GetHashCode;
' -- Method Equals;
' -- Method ToString;
' -- Method GetType;
' -- Constructor .ctor;
' ---
' Constructor: Void .ctor(Int32, Int32, Int32);
' ---
' aPoint is type Point.
' aPoint.x = 4
' aPoint.y = 5
' aPoint.z = 6
Commenti
ConstructorBuilder viene usato per descrivere completamente un costruttore nel linguaggio intermedio Microsoft (MSIL), incluso il nome, gli attributi, la firma e il corpo del costruttore. Viene usato insieme alla TypeBuilder classe per creare classi in fase di esecuzione. Chiamare DefineConstructor per ottenere un'istanza di ConstructorBuilder.
Se non si definisce un costruttore per il tipo dinamico, viene fornito automaticamente un costruttore senza parametri e chiama automaticamente il costruttore senza parametri della classe base.
Se si usa ConstructorBuilder per definire un costruttore per il tipo dinamico, non viene fornito un costruttore senza parametri. Sono disponibili le opzioni seguenti per fornire un costruttore senza parametri oltre al costruttore definito:
Se si vuole un costruttore senza parametri che chiama semplicemente il costruttore senza parametri della classe base, è possibile usare il TypeBuilder.DefineDefaultConstructor metodo per crearne uno (e facoltativamente limitare l'accesso a esso). Non fornire un'implementazione per questo costruttore senza parametri. In caso contrario, viene generata un'eccezione quando si tenta di usare il costruttore. Nessuna eccezione viene generata quando viene chiamato il TypeBuilder.CreateType metodo.
Se si vuole un costruttore senza parametri che faccia qualcosa di più che chiamare semplicemente il costruttore senza parametri della classe base o che chiama un altro costruttore della classe base o che esegue un'operazione completamente diversa, è necessario usare il TypeBuilder.DefineConstructor metodo per creare un ConstructorBuilderoggetto e fornire la propria implementazione.
Costruttori
ConstructorBuilder() |
Inizializza una nuova istanza della classe ConstructorBuilder. |
Proprietà
Attributes |
Ottiene gli attributi per questo costruttore. |
CallingConvention |
Ottiene un valore CallingConventions che dipende dal fatto che il tipo dichiarante sia generico o non generico. |
CallingConvention |
Ottiene un valore che indica le convenzioni di chiamata per questo metodo. (Ereditato da MethodBase) |
ContainsGenericParameters |
Ottiene un valore che indica se il metodo generico contiene parametri di tipo generico non assegnati. (Ereditato da MethodBase) |
CustomAttributes |
Ottiene una raccolta che contiene gli attributi personalizzati del membro. (Ereditato da MemberInfo) |
DeclaringType |
Ottiene un riferimento all'oggetto Type per il tipo che dichiara questo membro. |
InitLocals |
Ottiene o imposta un valore che indica se le variabili locali nel costruttore devono essere inizializzate su zero. |
InitLocalsCore |
In caso di override in una classe derivata, ottiene o imposta un valore che indica se le variabili locali in questo costruttore devono essere inizializzate zero. |
IsAbstract |
Ottiene un valore che indica se il metodo è astratto. (Ereditato da MethodBase) |
IsAssembly |
Ottiene un valore che indica se la visibilità potenziale di questo metodo o costruttore è descritta da Assembly, ovvero se il metodo o costruttore è visibile al massimo ad altri tipi dello stesso assembly, ma non ai tipi derivati all'esterno dell'assembly. (Ereditato da MethodBase) |
IsCollectible |
Ottiene un valore che indica se questo oggetto MemberInfo fa parte di un assembly conservato in un AssemblyLoadContext ritirabile. (Ereditato da MemberInfo) |
IsConstructedGenericMethod |
Definisce e rappresenta un costruttore di una classe dinamica. (Ereditato da MethodBase) |
IsConstructor |
Ottiene un valore che indica se il metodo è un costruttore. (Ereditato da MethodBase) |
IsFamily |
Ottiene un valore che indica se la visibilità di questo metodo o costruttore è descritta da Family, ovvero se il metodo o costruttore è visibile solo all'interno della relativa classe e delle classi derivate. (Ereditato da MethodBase) |
IsFamilyAndAssembly |
Ottiene un valore che indica se la visibilità di questo metodo o costruttore è descritta da FamANDAssem, ovvero se è possibile chiamare il metodo o il costruttore da classi derivate, ma solo se appartenenti allo stesso assembly. (Ereditato da MethodBase) |
IsFamilyOrAssembly |
Ottiene un valore che indica se la visibilità potenziale di questo metodo o costruttore è descritta da FamORAssem, ovvero se è possibile chiamare il metodo o il costruttore da classi derivate indipendentemente dalla posizione e da classi appartenenti allo stesso assembly. (Ereditato da MethodBase) |
IsFinal |
Ottiene un valore che indica se il metodo è |
IsGenericMethod |
Ottiene un valore che indica se il metodo è generico. (Ereditato da MethodBase) |
IsGenericMethodDefinition |
Ottiene un valore che indica se il metodo è una definizione di un metodo generico. (Ereditato da MethodBase) |
IsHideBySig |
Ottiene un valore che indica se nella classe derivata è nascosto un solo membro dello stesso tipo che riporta esattamente la stessa firma. (Ereditato da MethodBase) |
IsPrivate |
Ottiene un valore che indica se questo membro è privato. (Ereditato da MethodBase) |
IsPublic |
Ottiene un valore che indica se si tratta di un metodo pubblico. (Ereditato da MethodBase) |
IsSecurityCritical |
Ottiene un valore che indica se il metodo o il costruttore corrente è critico per la sicurezza o security-safe-critical al livello di attendibilità corrente, e pertanto può eseguire operazioni critiche. (Ereditato da MethodBase) |
IsSecuritySafeCritical |
Ottiene un valore che indica se il metodo o il costruttore corrente è security-safe-critical al livello di attendibilità corrente, vale a dire se può eseguire operazioni critiche ed essere richiamato da codice trasparente. (Ereditato da MethodBase) |
IsSecurityTransparent |
Ottiene un valore che indica se il metodo o il costruttore corrente è trasparente al livello di attendibilità corrente, e pertanto non può eseguire operazioni critiche. (Ereditato da MethodBase) |
IsSpecialName |
Ottiene un valore che indica se questo metodo ha un nome speciale. (Ereditato da MethodBase) |
IsStatic |
Ottiene un valore che indica se il metodo è |
IsVirtual |
Ottiene un valore che indica se il metodo è |
MemberType |
Ottiene un valore di MemberTypes che indica che questo membro è un costruttore. (Ereditato da ConstructorInfo) |
MetadataToken |
Ottiene un token che identifica il modulo dinamico corrente nei metadati. |
MetadataToken |
Ottiene un valore che identifica un elemento di metadati. (Ereditato da MemberInfo) |
MethodHandle |
Ottiene l'handle interno per il metodo. Questo handle consente di accedere all'handle dei metadati sottostanti. |
MethodHandle |
Ottiene un handle alla rappresentazione interna dei metadati di un metodo. (Ereditato da MethodBase) |
MethodImplementationFlags |
Ottiene i flag MethodImplAttributes che specificano gli attributi di implementazione di un metodo. |
MethodImplementationFlags |
Ottiene i flag MethodImplAttributes che specificano gli attributi di implementazione di un metodo. (Ereditato da MethodBase) |
Module |
Ottiene il modulo dinamico in cui è definito il costruttore. |
Module |
Ottiene il modulo in cui viene definito il tipo che dichiara il membro rappresentato dall'oggetto MemberInfo corrente. (Ereditato da MemberInfo) |
Name |
Recupera il nome del costruttore. |
ReflectedType |
Contiene un riferimento all'oggetto Type da cui è stato ottenuto questo oggetto. |
ReflectedType |
Ottiene l'oggetto classe utilizzato per ottenere questa istanza di |
ReturnType |
Obsoleti.
Ottiene l'oggetto |
Signature |
Recupera la firma del campo sotto forma di stringa. |
Metodi
AddDeclarativeSecurity(SecurityAction, PermissionSet) |
Aggiunge sicurezza dichiarativa a questo costruttore. |
DefineParameter(Int32, ParameterAttributes, String) |
Definisce un parametro del costruttore. |
DefineParameterCore(Int32, ParameterAttributes, String) |
Quando sottoposto a override in una classe derivata, definisce un parametro di questo costruttore. |
Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da ConstructorInfo) |
GetCustomAttributes(Boolean) |
Restituisce tutti gli attributi personalizzati definiti per questo costruttore. |
GetCustomAttributes(Boolean) |
Se sottoposto a override in una classe derivata, restituisce una matrice di tutti gli attributi personalizzati applicati a questo membro. (Ereditato da MemberInfo) |
GetCustomAttributes(Type, Boolean) |
Restituisce gli attributi personalizzati identificati dal tipo specificato. |
GetCustomAttributes(Type, Boolean) |
Quando viene sottoposto a override in una classe derivata, questo metodo restituisce una matrice di attributi personalizzati applicati a questo membro e identificati da Type. (Ereditato da MemberInfo) |
GetCustomAttributesData() |
Restituisce un elenco di oggetti CustomAttributeData che rappresentano i dati relativi agli attributi applicati al membro di destinazione. (Ereditato da MemberInfo) |
GetGenericArguments() |
Restituisce una matrice di oggetti Type che rappresentano gli argomenti tipo di un metodo generico o i parametri di tipo della definizione di un metodo generico. (Ereditato da MethodBase) |
GetHashCode() |
Restituisce il codice hash per l'istanza. (Ereditato da ConstructorInfo) |
GetILGenerator() |
Ottiene un oggetto ILGenerator per il costruttore. |
GetILGenerator(Int32) |
Ottiene un oggetto ILGenerator, con le dimensioni di flusso MSIL specificate, che può essere usato per compilare il corpo di un metodo per il costruttore. |
GetILGeneratorCore(Int32) |
Quando sottoposto a override in una classe derivata, ottiene un ILGenerator oggetto che può essere utilizzato per generare un corpo del metodo per questo costruttore. |
GetMethodBody() |
Se viene eseguito l'override in una classe derivata, ottiene un oggetto MethodBody che consente di accedere al flusso MSIL, alle variabili locali e alle eccezioni per il metodo corrente. (Ereditato da MethodBase) |
GetMethodImplementationFlags() |
Restituisce i flag di implementazione dei metodi per il costruttore. |
GetMethodImplementationFlags() |
Quando è sottoposto a override in una classe derivata, restituisce i flag MethodImplAttributes. (Ereditato da MethodBase) |
GetModule() |
Restituisce un riferimento al modulo che contiene il costruttore. |
GetParameters() |
Restituisce il parametro del costruttore. |
GetToken() |
Restituisce l'oggetto MethodToken che rappresenta il token per questo costruttore. |
GetType() |
Individua gli attributi di un costruttore di classe e fornisce l'accesso ai metadati del costruttore. (Ereditato da ConstructorInfo) |
HasSameMetadataDefinitionAs(MemberInfo) |
Definisce e rappresenta un costruttore di una classe dinamica. (Ereditato da MemberInfo) |
Invoke(BindingFlags, Binder, Object[], CultureInfo) |
Richiama in modo dinamico il costruttore rappresentato da questa istanza sull'oggetto indicato, passando i parametri specificati e con i vincoli del binder indicato. |
Invoke(BindingFlags, Binder, Object[], CultureInfo) |
Quando è implementato in una classe derivata, richiama il costruttore riprodotto da questo oggetto |
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
Richiama in modo dinamico il costruttore ottenuto tramite reflection da questa istanza con gli argomenti specificati, in base ai vincoli dell'oggetto |
Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
Quando viene sottoposto a override in una classe derivata, richiama il metodo o il costruttore ottenuto mediante reflection con i parametri specificati. (Ereditato da MethodBase) |
Invoke(Object, Object[]) |
Richiama il metodo o il costruttore rappresentato dall'istanza corrente usando i parametri specificati. (Ereditato da MethodBase) |
Invoke(Object[]) |
Richiama il costruttore riflesso dall'istanza che ha i parametri specificati fornendo i valori predefiniti per i parametri che non sono di uso comune. (Ereditato da ConstructorInfo) |
IsDefined(Type, Boolean) |
Controlla se il tipo di attributo personalizzato specificato è definito. |
IsDefined(Type, Boolean) |
Quando se ne effettua l'override in una classe derivata, indica se a questo membro sono applicati uno o più attributi del tipo specificato o dei tipi derivati. (Ereditato da MemberInfo) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
SetCustomAttribute(ConstructorInfo, Byte[]) |
Imposta un attributo personalizzato usando un BLOB di attributi personalizzati specificato. |
SetCustomAttribute(CustomAttributeBuilder) |
Impostare un attributo personalizzato usando un generatore di attributi personalizzati. |
SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
In caso di override in una classe derivata, imposta un attributo personalizzato su questo costruttore. |
SetImplementationFlags(MethodImplAttributes) |
Imposta l'implementazione dei metodi per il costruttore. |
SetImplementationFlagsCore(MethodImplAttributes) |
In caso di override in una classe derivata, imposta i flag di implementazione del metodo per questo costruttore. |
SetMethodBody(Byte[], Int32, Byte[], IEnumerable<ExceptionHandler>, IEnumerable<Int32>) |
Crea il corpo del costruttore usando una matrice di byte specificata di istruzioni Microsoft Intermediate Language (MSIL). |
SetSymCustomAttribute(String, Byte[]) |
Imposta l'attributo personalizzato del costruttore associato alle informazioni simboliche. |
ToString() |
Restituisce questa istanza di ConstructorBuilder come oggetto String. |
Implementazioni dell'interfaccia esplicita
_ConstructorBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. |
_ConstructorBuilder.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo relative a un oggetto che può quindi essere usato per ottenere informazioni sul tipo relative a un'interfaccia. |
_ConstructorBuilder.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). |
_ConstructorBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. |
_ConstructorInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da ConstructorInfo) |
_ConstructorInfo.GetType() |
Ottiene un oggetto Type che rappresenta il tipo ConstructorInfo. (Ereditato da ConstructorInfo) |
_ConstructorInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo relative a un oggetto che può quindi essere usato per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da ConstructorInfo) |
_ConstructorInfo.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da ConstructorInfo) |
_ConstructorInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da ConstructorInfo) |
_ConstructorInfo.Invoke_2(Object, BindingFlags, Binder, Object[], CultureInfo) |
Fornisce oggetti COM con accesso indipendente dalla versione al metodo Invoke(Object, BindingFlags, Binder, Object[], CultureInfo). (Ereditato da ConstructorInfo) |
_ConstructorInfo.Invoke_3(Object, Object[]) |
Fornisce oggetti COM con accesso indipendente dalla versione al metodo Invoke(Object, Object[]). (Ereditato da ConstructorInfo) |
_ConstructorInfo.Invoke_4(BindingFlags, Binder, Object[], CultureInfo) |
Fornisce oggetti COM con accesso indipendente dalla versione al metodo Invoke(BindingFlags, Binder, Object[], CultureInfo). (Ereditato da ConstructorInfo) |
_ConstructorInfo.Invoke_5(Object[]) |
Fornisce oggetti COM con accesso indipendente dalla versione al metodo Invoke(Object[]). (Ereditato da ConstructorInfo) |
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da MemberInfo) |
_MemberInfo.GetType() |
Ottiene un oggetto Type che rappresenta la classe MemberInfo. (Ereditato da MemberInfo) |
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo relative a un oggetto che può quindi essere usato per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da MemberInfo) |
_MemberInfo.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da MemberInfo) |
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da MemberInfo) |
_MethodBase.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da MethodBase) |
_MethodBase.GetType() |
Per una descrizione di questo membro, vedere GetType(). (Ereditato da MethodBase) |
_MethodBase.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo relative a un oggetto che può quindi essere usato per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da MethodBase) |
_MethodBase.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da MethodBase) |
_MethodBase.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da MethodBase) |
_MethodBase.IsAbstract |
Per una descrizione di questo membro, vedere IsAbstract. (Ereditato da MethodBase) |
_MethodBase.IsAssembly |
Per una descrizione di questo membro, vedere IsAssembly. (Ereditato da MethodBase) |
_MethodBase.IsConstructor |
Per una descrizione di questo membro, vedere IsConstructor. (Ereditato da MethodBase) |
_MethodBase.IsFamily |
Per una descrizione di questo membro, vedere IsFamily. (Ereditato da MethodBase) |
_MethodBase.IsFamilyAndAssembly |
Per una descrizione di questo membro, vedere IsFamilyAndAssembly. (Ereditato da MethodBase) |
_MethodBase.IsFamilyOrAssembly |
Per una descrizione di questo membro, vedere IsFamilyOrAssembly. (Ereditato da MethodBase) |
_MethodBase.IsFinal |
Per una descrizione di questo membro, vedere IsFinal. (Ereditato da MethodBase) |
_MethodBase.IsHideBySig |
Per una descrizione di questo membro, vedere IsHideBySig. (Ereditato da MethodBase) |
_MethodBase.IsPrivate |
Per una descrizione di questo membro, vedere IsPrivate. (Ereditato da MethodBase) |
_MethodBase.IsPublic |
Per una descrizione di questo membro, vedere IsPublic. (Ereditato da MethodBase) |
_MethodBase.IsSpecialName |
Per una descrizione di questo membro, vedere IsSpecialName. (Ereditato da MethodBase) |
_MethodBase.IsStatic |
Per una descrizione di questo membro, vedere IsStatic. (Ereditato da MethodBase) |
_MethodBase.IsVirtual |
Per una descrizione di questo membro, vedere IsVirtual. (Ereditato da MethodBase) |
ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Restituisce una matrice di tutti gli attributi personalizzati definiti in questo membro, esclusi gli attributi denominati, oppure una matrice vuota se non sono presenti attributi personalizzati. (Ereditato da MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Restituisce una matrice di attributi personalizzati definiti in questo membro, identificati dal tipo o da una matrice vuota, se non sono presenti attributi personalizzati di quel tipo. (Ereditato da MemberInfo) |
ICustomAttributeProvider.IsDefined(Type, Boolean) |
Indica se per questo membro sono definite una o più istanze di |
Metodi di estensione
GetCustomAttribute(MemberInfo, Type) |
Recupera una attributo personalizzato di un tipo specificato che viene applicato a un membro specificato. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Recupera un attributo personalizzato di un tipo specificato che viene applicato a un membro specificato e verifica facoltativamente i predecessori di tale membro. |
GetCustomAttribute<T>(MemberInfo) |
Recupera una attributo personalizzato di un tipo specificato che viene applicato a un membro specificato. |
GetCustomAttribute<T>(MemberInfo, Boolean) |
Recupera un attributo personalizzato di un tipo specificato che viene applicato a un membro specificato e verifica facoltativamente i predecessori di tale membro. |
GetCustomAttributes(MemberInfo) |
Recupera una raccolta di attributi personalizzati che vengono applicati a un membro specificato. |
GetCustomAttributes(MemberInfo, Boolean) |
Recupera una raccolta di attributi personalizzati che vengono applicati a un membro specificato e verifica facoltativamente i predecessori di tale membro. |
GetCustomAttributes(MemberInfo, Type) |
Recupera una raccolta di attributi personalizzati di un tipo specificato che vengono applicati a un membro specificato. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Recupera una raccolta di attributi personalizzati di un tipo specificato che vengono applicati a un membro specificato e verifica facoltativamente i predecessori di tale membro. |
GetCustomAttributes<T>(MemberInfo) |
Recupera una raccolta di attributi personalizzati di un tipo specificato che vengono applicati a un membro specificato. |
GetCustomAttributes<T>(MemberInfo, Boolean) |
Recupera una raccolta di attributi personalizzati di un tipo specificato che vengono applicati a un membro specificato e verifica facoltativamente i predecessori di tale membro. |
IsDefined(MemberInfo, Type) |
Indica se vengono applicati attributi personalizzati del tipo specificato a un membro specificato. |
IsDefined(MemberInfo, Type, Boolean) |
Indica se gli attributi personalizzati di un tipo specificato vengono applicati a un membro specificato e, facoltativamente, ai relativi predecessori. |
GetMetadataToken(MemberInfo) |
Ottiene un token di metadati per il membro specificato, se disponibile. |
HasMetadataToken(MemberInfo) |
Restituisce un valore che indica se un token di metadati è disponibile per il membro specificato. |