System.Reflection.Emit.ConstructorBuilder Class

Assembly: Mscorlib.dll
Namespace: System.Reflection.Emit
Summary
Defines and represents a constructor of a dynamic class.
C# Syntax:
public sealed class ConstructorBuilder : ConstructorInfo
Thread Safety
Reflection Emit is thread-safe when using assemblies that were created with the AppDomain.DefineDynamicAssembly method with the Boolean parameter isSynchronized set to true.
Remarks
ConstructorBuilder is used to fully describe a constructor in Microsoft intermediate language (MSIL), including the name, attributes, signature, and constructor body. It is used in conjunction with the TypeBuilder class to create classes at run time. Call TypeBuilder.DefineConstructor to get an instance of ConstructorBuilder.
See also:
System.Reflection.Emit Namespace

System.Reflection.Emit.ConstructorBuilder Member List:

Public Properties
Attributes Read-only

Overridden:
Retrieves the attributes for this constructor.
CallingConvention
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.CallingConvention


Gets a value indicating the calling conventions for this method.
DeclaringType Read-only

Overridden:
InitLocals Read-write

Gets or sets whether the local variables in this constructor should be zero-initialized.
IsAbstract
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsAbstract


Gets a value indicating whether the method is abstract.
IsAssembly
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsAssembly


Gets a value indicating whether this method can be called by other classes in the same assembly.
IsConstructor
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsConstructor


Gets a value indicating whether the method is a constructor.
IsFamily
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsFamily


Gets a value indicating whether access to this method is restricted to members of the class and members of its derived classes.
IsFamilyAndAssembly
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsFamilyAndAssembly


Gets a value indicating whether this method can be called by derived classes if they are in the same assembly.
IsFamilyOrAssembly
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsFamilyOrAssembly


Gets a value indicating whether this method can be called by derived classes, wherever they are, and by all classes in the same assembly.
IsFinal
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsFinal


Gets a value indicating whether this method is final.
IsHideBySig
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsHideBySig


Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class.
IsPrivate
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsPrivate


Gets a value indicating whether this member is private.
IsPublic
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsPublic


Gets a value indicating whether this is a public method.
IsSpecialName
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsSpecialName


Gets a value indicating whether this method has a special name.
IsStatic
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsStatic


Gets a value indicating whether the method is static.
IsVirtual
(inherited from System.Reflection.MethodBase)
Read-only

See base class member description: System.Reflection.MethodBase.IsVirtual


Gets a value indicating whether the method is virtual.
MemberType
(inherited from System.Reflection.ConstructorInfo)
Read-only

See base class member description: System.Reflection.ConstructorInfo.MemberType


Specifies the type of member that this instance reflects. This property is read-only.
MethodHandle Read-only

Overridden:
Retrieves the internal handle for the method. Use this handle to access the underlying metadata handle.
Name Read-only

Overridden:
Retrieves the name of this constructor.
ReflectedType Read-only

Overridden:
Holds a reference to the Type object from which this object was obtained.
ReturnType Read-only

Retrieves the Type of this constructor's return value.
Signature Read-only

Retrieves the signature of the field in the form of a string.
Public Methods
AddDeclarativeSecurity Adds declarative security to this constructor.
DefineParameter Defines a parameter of this constructor.
Equals
(inherited from System.Object)
See base class member description: System.Object.Equals

Derived from System.Object, the primary base class for all objects.
GetCustomAttributes Overloaded:
GetCustomAttributes(bool inherit)

Overridden:
Returns all the custom attributes defined for this constructor.
GetCustomAttributes Overloaded:
GetCustomAttributes(Type attributeType, bool inherit)

Overridden:
Returns the custom attributes identified by the given type.
GetHashCode
(inherited from System.Object)
See base class member description: System.Object.GetHashCode

Derived from System.Object, the primary base class for all objects.
GetILGenerator Gets an ILGenerator for this constructor.
GetMethodImplementationFlags Overridden:
Returns the method implementation flags for this constructor.
GetModule Returns a reference to the module that contains this constructor.
GetParameters Overridden:
Returns the parameters of this constructor.
GetToken Returns the MethodToken that represents the token for this constructor.
GetType
(inherited from System.Object)
See base class member description: System.Object.GetType

Derived from System.Object, the primary base class for all objects.
Invoke
(inherited from System.Reflection.ConstructorInfo)
Overloaded:
Invoke(object[] parameters)

See base class member description: System.Reflection.ConstructorInfo.Invoke


Invokes the constructor reflected by the instance that has the specified parameters, providing default values for the parameters not commonly used.
Invoke
(inherited from System.Reflection.MethodBase)
Overloaded:
Invoke(object obj, object[] parameters)

See base class member description: System.Reflection.MethodBase.Invoke


Invokes the underlying method or constructor represented by this MethodInfo object with the specified parameters.
Invoke Overloaded:
Invoke(BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)

Overridden:
Invokes the constructor dynamically reflected by this instance on the given object, passing along the specified parameters, and under the constraints of the given binder.
Invoke Overloaded:
Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)

Overridden:
Dynamically invokes the constructor reflected by this instance with the specified arguments, under the constraints of the specified Binder.
IsDefined Overridden:
Checks if the specified custom attribute type is defined.
SetCustomAttribute Overloaded:
SetCustomAttribute(CustomAttributeBuilder customBuilder)

Set a custom attribute using a custom attribute builder.
SetCustomAttribute Overloaded:
SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute)

Set a custom attribute using a specified custom attribute blob.
SetImplementationFlags Sets the method implementation flags for this constructor.
SetSymCustomAttribute Sets this constructor's custom attribute associated with symbolic information.
ToString Overridden:
Returns this ConstructorBuilder instance as a String.
Protected Methods
Finalize
(inherited from System.Object)
See base class member description: System.Object.Finalize

Derived from System.Object, the primary base class for all objects.
MemberwiseClone
(inherited from System.Object)
See base class member description: System.Object.MemberwiseClone

Derived from System.Object, the primary base class for all objects.

Hierarchy:


System.Reflection.Emit.ConstructorBuilder Member Details

Overridden Property: Attributes (read-only)
Summary
Retrieves the attributes for this constructor.
C# Syntax:
public override MethodAttributes Attributes {get;}

Return to top


Property: CallingConvention (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.CallingConvention

Summary
Gets a value indicating the calling conventions for this method.
C# Syntax:
public virtual CallingConventions CallingConvention {get;}
See also:
CallingConventions

Return to top


Overridden Property: DeclaringType (read-only)
Summary
Retrieves a reference to the Type object for the type that declares this member.
C# Syntax:
public override Type DeclaringType {get;}
Remarks
A member of a class (or interface) is either declared or inherited from a base class (or interface).

Return to top


Property: InitLocals (read-write)
Summary
Gets or sets whether the local variables in this constructor should be zero-initialized.
C# Syntax:
public bool InitLocals {get; set;}

Return to top


Property: IsAbstract (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsAbstract

Summary
Gets a value indicating whether the method is abstract.
C# Syntax:
public bool IsAbstract {get;}
Remarks
An abstract member is declared on a base class and has no implementation supplied.

To get the MethodBase, first get the type. From the type, get the method. From the method, get the MethodBase. If the MethodBase or constructor is other than public, it is protected and cannot be readily accessed. To access a non-public method, set the BindingFlags mask to NonPublic in GetMethod.

Example
 class methodbase
 {
    public static int Main(string[] args)
    {      
       Console.WriteLine ("\nReflection.MethodBase");
       
       //Get the MethodBase of two methods.
 
       //Get the types
       Type MyType1 = Type.GetType("System.Runtime.Serialization.Formatter");       
       Type MyType2 = Type.GetType("System.Reflection.MethodBase");
 
       //Get and display the methods
       MethodBase Mymethodbase1 = 
          MyType1.GetMethod("WriteInt32", BindingFlags.NonPublic|BindingFlags.Instance);

       MethodBase Mymethodbase2 = 
          MyType2.GetMethod("GetCurrentMethod", BindingFlags.Public|BindingFlags.Static);
 
       Console.Write("\nMymethodbase = " + Mymethodbase1.ToString());
       if (Mymethodbase1.IsAbstract)
          Console.Write ("\nMymethodbase is an abstract method");
       else
          Console.Write ("\nMymethodbase is not an abstract method");
 
       Console.Write("\n\nMymethodbase = " + Mymethodbase2.ToString());
       if (Mymethodbase2.IsAbstract)
          Console.Write ("\nMymethodbase is an abstract method");
       else
          Console.Write ("\nMymethodbase is not an abstract method");
       
       return 0;
    }
 }
 /*
 Produces the following output
 Reflection.MethodBase
 
 Mymethodbase = Void WriteInt32 (Int32, System.String)
 Mymethodbase is an abstract method
 
 Mymethodbase = System.Reflection.MethodBase GetCurrentMethod ()
 Mymethodbase is not an abstract method
 */

    
See also:
Boolean | BindingFlags

Return to top


Property: IsAssembly (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsAssembly

Summary
Gets a value indicating whether this method can be called by other classes in the same assembly.
C# Syntax:
public bool IsAssembly {get;}
Remarks
If set, this method can be called by other classes in the same assembly.

To get the MethodBase, first get the type. From the type, get the method. From the method, get the MethodBase. If the MethodBase or constructor is other than public, it is protected and cannot be readily accessed. To access a non-public method, set the BindingFlags mask to NonPublic in GetMethod.

Example
 class methodbase
 {
	internal void f() { }
    public static int Main(string[] args)
    { 
       Console.WriteLine ("\nReflection.MethodBase");
       
       //Get the MethodBase of two methods.
 
       //Get the types
       Type MyType1 = Type.GetType("System.Runtime.Serialization.Formatter");
       Type MyType2 = Type.GetType("methodbase");
 
       //Get and display the methods and the IsAssembly
       MethodBase Mymethodbase1 = 
          MyType1.GetMethod("WriteInt32",BindingFlags.NonPublic|BindingFlags.Instance);
       MethodBase Mymethodbase2 = 
          MyType2.GetMethod("f", BindingFlags.NonPublic|BindingFlags.Instance);
 
       Console.Write("\nMymethodbase = " + Mymethodbase1.ToString());
       if (Mymethodbase1.IsAssembly)
          Console.Write ("\nMymethodbase is an assembly method");
       else
          Console.Write ("\nMymethodbase is not an assembly method");
 
       Console.Write("\n\nMymethodbase = " + Mymethodbase2.ToString());
       if (Mymethodbase2.IsAssembly)
          Console.Write ("\nMymethodbase is an assembly method");
       else
          Console.Write ("\nMymethodbase is not an assembly method");
       
       return 0;
    }
 }
 /*
 Produces the following output
 Reflection.MethodBase
 
 Mymethodbase = Void WriteInt32 (Int32, System.String)
 Mymethodbase is not an assembly method
 
 Mymethodbase = Void f()
 Mymethodbase is an assembly method
 */

    
See also:
FieldAttributes | Boolean | BindingFlags

Return to top


Property: IsConstructor (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsConstructor

Summary
Gets a value indicating whether the method is a constructor.
C# Syntax:
public bool IsConstructor {get;}
See also:
Boolean

Return to top


Property: IsFamily (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsFamily

Summary
Gets a value indicating whether access to this method is restricted to members of the class and members of its derived classes.
C# Syntax:
public bool IsFamily {get;}
Remarks
If a type member has Family level visibility it can be called from any member in a derived class, but not from any other type.
See also:
Boolean

Return to top


Property: IsFamilyAndAssembly (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsFamilyAndAssembly

Summary
Gets a value indicating whether this method can be called by derived classes if they are in the same assembly.
C# Syntax:
public bool IsFamilyAndAssembly {get;}
See also:
Boolean

Return to top


Property: IsFamilyOrAssembly (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsFamilyOrAssembly

Summary
Gets a value indicating whether this method can be called by derived classes, wherever they are, and by all classes in the same assembly.
C# Syntax:
public bool IsFamilyOrAssembly {get;}
Remarks
If a type member has FamilyOrAssembly level visibility it can be called from any member in a derived class or any member in the same assembly, but not from any other type.
See also:
Boolean

Return to top


Property: IsFinal (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsFinal

Summary
Gets a value indicating whether this method is final.
C# Syntax:
public bool IsFinal {get;}
Remarks
To determine if a method is overridable, it is not sufficient to check that MethodBase.IsVirtual is true. For a method to be overridable, IsVirtual must be true and IsFinal must be false. For example, a method might be non-virtual, but it implements an interface method. The common language runtime requires that all methods that implement interface members must be marked as virtual; therefore, the compiler marks the method virtualfinal. So there are cases where a method is marked as virtual but is still not overridable.

To establish with certainty whether a method is overridable, use code such as this:

if (MethodInfo.IsVirtual && !MethodInfo.IsFinal)

If IsVirtual is false or IsFinal is true, then the method cannot be overridden.

Example
This example prints false for IsFinal, which might lead you to think that MyMethod is overridable. The code prints false even though MyMethod is not marked virtual and thus cannot be overridden.
 using System;
 using System.Reflection;
 
 public class MyClass 
 {
 public void MyMethod() 
   {
   }
 public static void Main() 
   {
    MethodBase m = typeof(MyClass).GetMethod("MyMethod");
    Console.WriteLine(m.IsFinal);
   }
 }

    
See also:
Boolean

Return to top


Property: IsHideBySig (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsHideBySig

Summary
Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class.
C# Syntax:
public bool IsHideBySig {get;}

Return to top


Property: IsPrivate (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsPrivate

Summary
Gets a value indicating whether this member is private.
C# Syntax:
public bool IsPrivate {get;}
Remarks
If a type member has Private level visibility, it can be called from any member in the same class and no others.
See also:
Boolean

Return to top


Property: IsPublic (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsPublic

Summary
Gets a value indicating whether this is a public method.
C# Syntax:
public bool IsPublic {get;}
Remarks
To get the MethodBase, first get the type. From the type, get the method. From the method, get the MethodBase. If the MethodBase or constructor is other than public, it is protected and cannot be readily accessed. To access a non-public method, set the BindingFlags mask to NonPublic in GetMethod.
Example
 class methodbase
 {
    public static int Main(string[] args)
    {     
 
       Console.WriteLine("\nReflection.MethodBase");
       
       //Get the MethodBase of a method.
  
       //Get the type
       Type MyType = Type.GetType("System.MulticastDelegate");
  
       //Get and display the method
       MethodBase Mymethodbase =
          MyType.GetMethod("RemoveImpl",BindingFlags.NonPublic);
  
       Console.Write("\nMymethodbase = " + Mymethodbase);
  
       bool Myispublic = Mymethodbase.IsPublic;
       if (Myispublic)
          Console.Write ("\nMymethodbase is a public method");
       else
          Console.Write ("\nMymethodbase is not a public method");
       
       return 0;
    }
 }
 /*
 Produces the following output
 
 Reflection.MethodBase
 Mymethodbase = System.Delegate RemoveImpl (System.Delegate)
 Mymethodbase is not a public method
 */

    
See also:
Boolean | BindingFlags

Return to top


Property: IsSpecialName (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsSpecialName

Summary
Gets a value indicating whether this method has a special name.
C# Syntax:
public bool IsSpecialName {get;}
Remarks
The MethodAttributes.SpecialName bit is set to flag members that are treated in a special way by some compilers (such as property accessors and operator overloading methods).
See also:
Boolean | MethodAttributes

Return to top


Property: IsStatic (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsStatic

Summary
Gets a value indicating whether the method is static.
C# Syntax:
public bool IsStatic {get;}
Remarks
A static member cannot implicitly reference instance data in a class (see MethodAttributes.Static).
See also:
Boolean | MethodAttributes

Return to top


Property: IsVirtual (read-only)
Inherited
See base class member description: System.Reflection.MethodBase.IsVirtual

Summary
Gets a value indicating whether the method is virtual.
C# Syntax:
public bool IsVirtual {get;}
Remarks
A virtual member may reference instance data in a class and must be referenced through an instance of the class.

To determine if a method is overridable, it is not sufficient to check that IsVirtual is true. For a method to be overridable, IsVirtual must be true and MethodBase.IsFinal must be false. For example, a method might be non-virtual, but it implements an interface method. The common language runtime requires that all methods that implement interface members must be marked as virtual; therefore, the compiler marks the method virtualfinal. So there are cases where a method is marked as virtual but is still not overridable.

To establish with certainty whether a method is overridable, use code such as this:

if (MethodInfo.IsVirtual && !MethodInfo.IsFinal)

If IsVirtual is false or IsFinal is true, then the method cannot be overridden.

Example
This example prints false for IsFinal, which might lead you to think that MyMethod is overridable. The code prints false even though MyMethod is not marked virtual and thus cannot be overridden.
 using System;
 using System.Reflection;
 
 public class MyClass 
 {
 public void MyMethod() 
   {
   }
 public static void Main() 
   {
    MethodBase m = typeof(MyClass).GetMethod("MyMethod");
    Console.WriteLine(m.IsFinal);
   }
 }

    

Return to top


Property: MemberType (read-only)
Inherited
See base class member description: System.Reflection.ConstructorInfo.MemberType

Summary
Specifies the type of member that this instance reflects. This property is read-only.
C# Syntax:
public override MemberTypes MemberType {get;}
See also:
MemberTypes

Return to top


Overridden Property: MethodHandle (read-only)
Summary
Retrieves the internal handle for the method. Use this handle to access the underlying metadata handle.
C# Syntax:
public override RuntimeMethodHandle MethodHandle {get;}
Exceptions
Exception Type Condition
NotSupportedException This property is not supported on this class.

Return to top


Overridden Property: Name (read-only)
Summary
Retrieves the name of this constructor.
C# Syntax:
public override string Name {get;}

Return to top


Overridden Property: ReflectedType (read-only)
Summary
Holds a reference to the Type object from which this object was obtained.
C# Syntax:
public override Type ReflectedType {get;}
Remarks
A ConstructorBuilder object represents a constructor on a particular class. In order to obtain a ConstructorInfo object, the Type object that represents the class that supports the constructor is queried. This property holds a reference to that Type object.
See also:
MemberInfo.ReflectedType

Return to top


Property: ReturnType (read-only)
Summary
Retrieves the Type of this constructor's return value.
C# Syntax:
public Type ReturnType {get;}
Remarks
This property might be removed in a future version.

Return to top


Property: Signature (read-only)
Summary
Retrieves the signature of the field in the form of a string.
C# Syntax:
public string Signature {get;}

Return to top


Method: AddDeclarativeSecurity(
   SecurityAction action,
   PermissionSet pset
)
Summary
Adds declarative security to this constructor.
C# Syntax:
public void AddDeclarativeSecurity(
   SecurityAction action,
   PermissionSet pset
);
Parameters:

action

The security action to be taken, such as Demand, Assert, and so on.

pset

The set of permissions the action applies to.

Exceptions
Exception Type Condition
ArgumentOutOfRangeException action is invalid (RequestMinimum, RequestOptional, and RequestRefuse are invalid).
InvalidOperationException The containing type has been previously created using TypeBuilder.CreateType.

-or-

The permission set pset contains an action that was added earlier by AddDeclarativeSecurity.

ArgumentNullException pset is null.
Remarks
ConstructorBuilder.AddDeclarativeSecurity can be called several times, with each call specifying a security action (such as Demand, Assert, and Deny) and a set of permissions that the action applies to.

Return to top


Method: DefineParameter(
   int iSequence,
   ParameterAttributes attributes,
   string strParamName
)
Summary
Defines a parameter of this constructor.
C# Syntax:
public ParameterBuilder DefineParameter(
   int iSequence,
   ParameterAttributes attributes,
   string strParamName
);
Parameters:

iSequence

The position of the parameter in the parameter list. Parameters are indexed beginning with the number 1 for the first parameter.

attributes

The attributes of the parameter.

strParamName

The name of the parameter. The name can be the null string.

Return Value:
Returns a ParameterBuilder object that represents the new parameter of this constructor.
Exceptions
Exception Type Condition
ArgumentOutOfRangeException position is less than or equal to zero, or it is greater than the number of parameters of the constructor.
InvalidOperationException The containing type has been created using TypeBuilder.CreateType.

Return to top


Method: Equals(
   object obj
)
Inherited
See base class member description: System.Object.Equals
C# Syntax:
public virtual bool Equals(
   object obj
);

For more information on members inherited from System.Object click on the link above.

Return to top


Method: Finalize()
Inherited
See base class member description: System.Object.Finalize
C# Syntax:
~ConstructorBuilder();

For more information on members inherited from System.Object click on the link above.

Return to top


Overloaded Method: GetCustomAttributes(
   bool inherit
)
Summary
Returns all the custom attributes defined for this constructor.
C# Syntax:
public override object[] GetCustomAttributes(
   bool inherit
);
Parameters:

inherit

Controls inheritance of custom attributes from base classes. This parameter is ignored.

Return Value:
Returns an array of objects representing all the custom attributes of the constructor represented by this ConstructorBuilder instance.
Implements:
ICustomAttributeProvider.GetCustomAttributes
Remarks
The inherit parameter is ignored because a class never inherits constructors from base classes.

Return to top


Overloaded Method: GetCustomAttributes(
   Type attributeType,
   bool inherit
)
Summary
Returns the custom attributes identified by the given type.
C# Syntax:
public override object[] GetCustomAttributes(
   Type attributeType,
   bool inherit
);
Parameters:

attributeType

The custom attribute type.

inherit

Controls inheritance of custom attributes from base classes. This parameter is ignored.

Return Value:
Returns an array of type Object representing the attributes of this constructor.
Implements:
ICustomAttributeProvider.GetCustomAttributes
Remarks
The inherit parameter is ignored because a class never inherits constructors from base classes.

Return to top


Method: GetHashCode()
Inherited
See base class member description: System.Object.GetHashCode
C# Syntax:
public virtual int GetHashCode();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetILGenerator()
Summary
Gets an ILGenerator for this constructor.
C# Syntax:
public ILGenerator GetILGenerator();
Return Value:
Returns an ILGenerator object for this constructor.
Exceptions
Exception Type Condition
InvalidOperationException If the constructor is a default constructor.
Remarks
The runtime generates the code for default constructors. Therefore, if an attempt is made to obtain an ILGenerator, an exception will be thrown.

Return to top


Overridden Method: GetMethodImplementationFlags()
Summary
Returns the method implementation flags for this constructor.
C# Syntax:
public override MethodImplAttributes GetMethodImplementationFlags();
Return Value:
The method implementation flags for this constructor.

Return to top


Method: GetModule()
Summary
Returns a reference to the module that contains this constructor.
C# Syntax:
public Module GetModule();
Return Value:
The module that contains this constructor.

Return to top


Overridden Method: GetParameters()
Summary
Returns the parameters of this constructor.
C# Syntax:
public override ParameterInfo[] GetParameters();
Return Value:
Returns an array of ParameterInfo objects that represent the parameters of this constructor.
Exceptions
Exception Type Condition
InvalidOperationException TypeBuilder.CreateType has not been called on this constructor's type.

Return to top


Method: GetToken()
Summary
Returns the MethodToken that represents the token for this constructor.
C# Syntax:
public MethodToken GetToken();
Return Value:
Returns the MethodToken of this constructor.

Return to top


Method: GetType()
Inherited
See base class member description: System.Object.GetType
C# Syntax:
public Type GetType();

For more information on members inherited from System.Object click on the link above.

Return to top


Overloaded Method: Invoke(
   object[] parameters
)
Inherited
See base class member description: System.Reflection.ConstructorInfo.Invoke

Summary
Invokes the constructor reflected by the instance that has the specified parameters, providing default values for the parameters not commonly used.
C# Syntax:
public object Invoke(
   object[] parameters
);
Parameters:

parameters

An array of values that matches the number, order and type (under the constraints of the default binder) of the parameters for this constructor. If this constructor takes no parameters, then use either an array with zero elements or null, as in Object[] parameters = new Object[0]. If the parameters contain an uninitialized object, it is treated as empty, which, with the default binder, can be widened to 0, 0.0 or String.

Return Value:
An instance of the class associated with the constructor.
Exceptions
Exception Type Condition
MemberAccessException The attempt to access the constructor fails (that is, the class might be abstract), or the method is a class initializer.

-or-

The caller does not have permission to execute the constructor.

ArgumentException The parameters array does not contain values that match the types accepted by this constructor.
TargetInvocationException The invoked constructor throws an exception. The InnerException property of the TargetInvocationException will hold the exception thrown by the constructor.
TargetParameterCountException An incorrect number of parameters was passed.
Remarks
The number, type, and order of elements in the parameters array should be identical to the number, type, and order of parameters for the constructor reflected by this instance. Before calling the constructor, Invoke ensures that the caller has access permission and verify that the parameters are valid.

Access restrictions are ignored for fully trusted code. That is, private constructors, methods, fields, and properties can be accessed and invoked using reflection whenever the code is fully trusted.

This method is a convenience method for the following overloaded version, using default values. This method cannot be overridden.

.NET Framework Security:
ReflectionPermission for reflecting non-public objects. Associated enumeration: ReflectionPermissionFlag.MemberAccess

Return to top


Overloaded Method: Invoke(
   object obj,
   object[] parameters
)
Inherited
See base class member description: System.Reflection.MethodBase.Invoke

Summary
Invokes the underlying method or constructor represented by this MethodInfo object with the specified parameters.
C# Syntax:
public object Invoke(
   object obj,
   object[] parameters
);
Parameters:

obj

The instance that created this method.

parameters

An argument list for the invoked method or constructor. This is an array of objects with the same number, order, and type as the parameters of the method or constructor to be invoked. If there are no parameters, this should be null.

If the method or constructor represented by this instance takes a ByRef parameter, there is no special attribute required for that parameter in order to invoke the method or constructor using this function. If the parameters contain an uninitialized object, it is treated as System.Empty, which, with the default binder, can be widened to 0, 0.0 or String.

An argument list for the invoked method or constructor. This is an array of objects with the same number, order, and type as the parameters of the method or constructor to be invoked. If there are no parameters, this should be null.

If the method or constructor represented by this instance takes a ByRef parameter, there is no special attribute required for that parameter in order to invoke the method or constructor using this function. If the parameters contain an uninitialized object, it is treated as System.Empty, which, with the default binder, can be widened to 0, 0.0 or String.

Return Value:
An Object containing the return value of the invoked method, or a re-initialized object in the case of a constructor.
Exceptions
Exception Type Condition
TargetException The obj parameter is null and the method is not static.

-or-

The method is not declared or inherited by the class of obj.

ArgumentException The type of the parameters parameter does not match the signature of the method or constructor reflected by this instance.
MemberAccessException The caller does not have permission to invoke the method or constructor.
TargetInvocationException The invoked method or constructor throws an exception.
TargetParameterCountException The parameters array does not have the correct number of arguments.
MethodAccessException The caller does not have permission to execute the constructor.
Remarks
Use this method to invoke methods with parameters that have default values. To bind to these methods, Reflection requires one of the binding flags DefaultValueBinding, DefaultValueChangeType, or DefaultValueFull to be specified explicitly. This is a requirement even in those cases where a value is passed for a parameter that has a default value.

For example, consider a method such as MyMethod(int x, float y = 2.0). To invoke this method with only the first argument as MyMethod(4), pass one of the above binding flags and pass two arguments, namely, 4 for the first argument and Missing.Value for the second argument. Unless you use Missing.Value, you may not omit optional parameters with the Invoke method. If you must do so, use Type.InvokeMember instead.

This is a convenience method that calls the following Invoke method, passing null in the other parameters. If the invoked method throws an exception, Exception.GetBaseException returns the exception.

To invoke a static method using its MethodInfo object, the first parameter should be null, as shown in the following call:

Object myReturnValue = myMethodInfo.Invoke(null, myParametersArray);

See also:
BindingFlags | Missing

Return to top


Overloaded Method: Invoke(
   BindingFlags invokeAttr,
   Binder binder,
   object[] parameters,
   CultureInfo culture
)
Summary
Invokes the constructor dynamically reflected by this instance on the given object, passing along the specified parameters, and under the constraints of the given binder.
C# Syntax:
public override object Invoke(
   BindingFlags invokeAttr,
   Binder binder,
   object[] parameters,
   CultureInfo culture
);
Parameters:

invokeAttr

This must be a bit flag from BindingFlags, such as InvokeMethod, NonPublic, and so on.

binder

An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects using reflection. If binder is null, the default binder is used. See Binder.

parameters

An argument list. This is an array of arguments with the same number, order, and type as the parameters of the constructor to be invoked. If there are no parameters this should be null.

culture

An instance of CultureInfo used to govern the coercion of types. If this is null, the CultureInfo for the current thread is used. (Note that this is necessary to, for example, convert a String that represents 1000 to a Double value, since 1000 is represented differently by different cultures.)

Return Value:
Returns an Object that is the return value of the invoked constructor.
Exceptions
Exception Type Condition
NotSupportedException This method is not currently supported. You can retrieve the constructor using Type.GetConstructor and call ConstructorInfo.Invoke on the returned ConstructorInfo.
Remarks
If the constructor has no parameters, the value of the parameters parameter should be null. Otherwise, the number, type, and order of elements in the parameters array should be identical to the number, type, and order of parameters for the constructor reflected by this instance.

For example, if the constructor reflected by this instance is declared as public MyClass(String a, String b), then parameters should be an array of objects with length 2.



Note Access restrictions are ignored for fully-trusted code. That is, private constructors, methods, fields, and properties can be accessed and invoked using Reflection whenever the code is fully trusted.
See also:
Binder | BindingFlags

Return to top


Overloaded Method: Invoke(
   object obj,
   BindingFlags invokeAttr,
   Binder binder,
   object[] parameters,
   CultureInfo culture
)
Summary
Dynamically invokes the constructor reflected by this instance with the specified arguments, under the constraints of the specified Binder.
C# Syntax:
public override object Invoke(
   object obj,
   BindingFlags invokeAttr,
   Binder binder,
   object[] parameters,
   CultureInfo culture
);
Parameters:

obj

The object that needs to be reinitialized.

invokeAttr

One of the BindingFlags values that specifies the type of binding that is desired.

binder

A Binder that defines a set of properties and enables the binding, coercion of argument types, and invocation of members using reflection. If binder is null, then Binder.DefaultBinding is used.

parameters

An array of type Object used to match the number, order and type of the parameters for this constructor, under the constraints of binder. If this constructor does not require parameters, pass an array with zero elements, as in Object[] parameters = new Object[0]. If the parameters contain an uninitialized Object, it is treated as Empty which, with the default binder, can be widened to 0, 0.0 or String.

culture

A CultureInfo used to govern the coercion of types. If this is null, the CultureInfo for the current thread is used.

Return Value:
An instance of the class associated with the constructor.
Exceptions
Exception Type Condition
NotSupportedException This method is not currently supported. You can retrieve the constructor using Type.GetConstructor and call ConstructorInfo.Invoke on the returned ConstructorInfo.
Remarks
The number, type, and order of elements in the parameters array should be identical to the number, type, and order of parameters for the constructor reflected by this instance.

Before calling the constructor, Invoke ensures that the caller has access permission, and that the parameters are of the correct number, order and type.

Access restrictions are ignored for fully-trusted code. That is, private constructors, methods, fields, and properties can be accessed and invoked using Reflection whenever the code is fully trusted.

See also:
Binder | BindingFlags

Return to top


Overridden Method: IsDefined(
   Type attributeType,
   bool inherit
)
Summary
Checks if the specified custom attribute type is defined.
C# Syntax:
public override bool IsDefined(
   Type attributeType,
   bool inherit
);
Parameters:

attributeType

A custom attribute type.

inherit

Controls inheritance of custom attributes from base classes. This parameter is ignored.

Return Value:
true if the specified custom attribute type is defined; otherwise, false.
Exceptions
Exception Type Condition
NotSupportedException This method is not currently supported. You can retrieve the constructor using Type.GetConstructor and call MemberInfo.IsDefined on the returned ConstructorInfo.
Implements:
ICustomAttributeProvider.IsDefined
Remarks
See the metadata specification for details on how to format binaryAttribute.

Return to top


Method: MemberwiseClone()
Inherited
See base class member description: System.Object.MemberwiseClone
C# Syntax:
protected object MemberwiseClone();

For more information on members inherited from System.Object click on the link above.

Return to top


Overloaded Method: SetCustomAttribute(
   CustomAttributeBuilder customBuilder
)
Summary
Set a custom attribute using a custom attribute builder.
C# Syntax:
public void SetCustomAttribute(
   CustomAttributeBuilder customBuilder
);
Parameters:

customBuilder

An instance of a helper class to define the custom attribute.

Exceptions
Exception Type Condition
ArgumentNullException customBuilder is null.

Return to top


Overloaded Method: SetCustomAttribute(
   ConstructorInfo con,
   byte[] binaryAttribute
)
Summary
Set a custom attribute using a specified custom attribute blob.
C# Syntax:
public void SetCustomAttribute(
   ConstructorInfo con,
   byte[] binaryAttribute
);
Parameters:

con

The constructor for the custom attribute.

binaryAttribute

A byte blob representing the attributes.

Exceptions
Exception Type Condition
ArgumentNullException con or binaryAttribute is null.
Remarks
See the metadata specification for details on how to format binaryAttribute.

Return to top


Method: SetImplementationFlags(
   MethodImplAttributes attributes
)
Summary
Sets the method implementation flags for this constructor.
C# Syntax:
public void SetImplementationFlags(
   MethodImplAttributes attributes
);
Parameters:

attributes

The method implementation flags.

Exceptions
Exception Type Condition
InvalidOperationException The containing type has been created using TypeBuilder.CreateType.

Return to top


Method: SetSymCustomAttribute(
   string name,
   byte[] data
)
Summary
Sets this constructor's custom attribute associated with symbolic information.
C# Syntax:
public void SetSymCustomAttribute(
   string name,
   byte[] data
);
Parameters:

name

The name of the custom attribute.

data

The value of the custom attribute.

Exceptions
Exception Type Condition
InvalidOperationException The containing type has been created using TypeBuilder.CreateType.

-or-

The module does not have a symbol writer defined. For example, the module is not a debug module.

Return to top


Overridden Method: ToString()
Summary
Returns this ConstructorBuilder instance as a String.
C# Syntax:
public override string ToString();
Return Value:
Returns a String containing the name, attributes, and exceptions of this constructor, followed by the current Microsoft intermediate language (MSIL) stream.

Return to top


Top of page

Copyright (c) 2002 Microsoft Corporation. All rights reserved.