Export (0) Print
Expand All

EnumBuilder.Module Property

Retrieves the dynamic module that contains this EnumBuilder definition.

Namespace:  System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

public override Module Module { get; }

Property Value

Type: System.Reflection.Module
Read-only. The dynamic module that contains this EnumBuilder definition.

The following code sample demonstrates the use of the Module property to reference the parent module of the current EnumBuilder.


using System;
using System.Reflection;
using System.Reflection.Emit;

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Get the current application domain.
      AppDomain currentDomain = AppDomain.CurrentDomain;

      // Create a dynamic assembly in the current application domain, 
      // and allow it to be executed.
      AssemblyName aName = new AssemblyName("TempAssembly");
      AssemblyBuilder ab = currentDomain.DefineDynamicAssembly(aName, 
         AssemblyBuilderAccess.Run);

      // Define a dynamic module in "TempAssembly" assembly. The module can
      // have the same name as the assembly.
      ModuleBuilder mb = ab.DefineDynamicModule(aName.Name);

      // Define a public enumeration with the name "Elevation" and an 
      // underlying type of Integer.
      EnumBuilder eb = mb.DefineEnum("Elevation", 
         TypeAttributes.Public, typeof(int));

      // Define two members, "High" and "Low".
      eb.DefineLiteral("Low", 0);
      eb.DefineLiteral("High", 1);

      // Create the type.
      Type finished = eb.CreateType();

      foreach( FieldInfo fi in finished.GetFields() )
      {
         outputBlock.Text += String.Format("{0}.{1} = {2}\n", 
            finished.Name, fi.Name, fi.GetRawConstantValue());
      }

      outputBlock.Text += "Properties of EnumBuilder:  " + "\n";
      outputBlock.Text += "Assembly: " + eb.Assembly.ToString() + "\n";
      outputBlock.Text += "AssemblyQualifiedName: " + eb.AssemblyQualifiedName.ToString() + "\n";
      outputBlock.Text += "Module: " + eb.Module.ToString() + "\n";
      outputBlock.Text += "Name: " + eb.Name.ToString() + "\n";
      outputBlock.Text += "NameSpace: " + eb.Namespace + "\n";
   }
}

/* This code example produces output similar to the following:

Elevation.Low = 0
Elevation.High = 1 
Properties of EnumBuilder: 
Assembly: TempAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
AssemblyQualifiedName: Elevation, TempAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Module: RefEmit_InMemoryManifestModule
Name: Elevation
NameSpace: 
 */


Silverlight

Supported in: 5, 4, 3

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show:
© 2014 Microsoft