DefineLiteral Method

EnumBuilder.DefineLiteral Method

Defines the named static field in an enumeration type with the specified constant value.

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

public FieldBuilder DefineLiteral(
	string literalName,
	Object literalValue


Type: System.String
The name of the static field.
Type: System.Object
The constant value of the literal.

Return Value

Type: System.Reflection.Emit.FieldBuilder
The defined field.

The defined field will have the field attributes Public, Static, and Literal set.

The following code example demonstrates the construction of an enumeration within a dynamic assembly, using EnumBuilder. The example defines an enumeration named Elevation, with an underlying type of Int32, and creates two elements: Low, with a value of 0, and High, with a value of 1.

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 for the current thread.
      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());

/* This code example produces the following output:

Elevation.Low = 0
Elevation.High = 1 


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

© 2016 Microsoft