EnumBuilder.DefineLiteral Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Defines the named static field in an enumeration type with the specified constant value.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Function DefineLiteral ( _
literalName As String, _
literalValue As Object _
) As FieldBuilder
public FieldBuilder DefineLiteral(
string literalName,
Object literalValue
)
Parameters
- literalName
Type: System.String
The name of the static field.
- literalValue
Type: System.Object
The constant value of the literal.
Return Value
Type: System.Reflection.Emit.FieldBuilder
The defined field.
Examples
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.
Note: |
---|
To run this example, see Building Examples That Use a Demo Method and a TextBlock Control. |
Imports System.Reflection
Imports System.Reflection.Emit
Class Example
Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
' Get the current application domain for the current thread.
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
' Create a dynamic assembly in the current application domain,
' and allow it to be executed.
Dim aName As AssemblyName = New AssemblyName("TempAssembly")
Dim ab As AssemblyBuilder = currentDomain.DefineDynamicAssembly( _
aName, AssemblyBuilderAccess.Run)
' Define a dynamic module in "TempAssembly" assembly. The module can
' have the same name as the assembly.
Dim mb As ModuleBuilder = _
ab.DefineDynamicModule(aName.Name)
' Define a public enumeration with the name "Elevation" and an
' underlying type of Integer.
Dim eb As EnumBuilder = _
mb.DefineEnum("Elevation", TypeAttributes.Public, GetType(Integer))
' Define two members, "High" and "Low".
eb.DefineLiteral("Low", 0)
eb.DefineLiteral("High", 1)
' Create the type.
Dim finished As Type = eb.CreateType()
For Each fi As FieldInfo in finished.GetFields()
outputBlock.Text += String.Format("{0}.{1} = {2}" & vbCrLf, _
finished.Name, fi.Name, fi.GetRawConstantValue())
Next
End Sub
End Class
' This code example produces the following output:
'
'Elevation.Low = 0
'Elevation.High = 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
*/
Version Information
Silverlight
Supported in: 5, 4, 3
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.