private FieldInfo GetFieldInfo()
 {
     // turn the field builder back into a FieldInfo
     return(_builder.DeclaringType.Module.ResolveField(
                _builder.GetToken().Token
                ));
 }
Example #2
0
        static public FieldInfo GetNativeFieldInfo(this FieldBuilder item)
        {
            if (item.IsCreated())
            {
                return(item.DeclaringType
                       .GetNativeMemberFields()
                       .FindOnly(m => m.MetadataToken == item.GetToken().Token));
            }

            return(item);
        }
Example #3
0
        private FieldInfo GetFieldInfo()
        {
            // turn the field builder back into a FieldInfo
#if SILVERLIGHT
            return(_finishedType.Value.GetField(_builder.Name));
#else
            return(_builder.DeclaringType.Module.ResolveField(
                       _builder.GetToken().Token
                       ));
#endif
        }
Example #4
0
        private FieldInfo GetFieldInfo()
        {
            // turn the field builder back into a FieldInfo
#if NETCOREAPP2_0 || NETCOREAPP2_1
            return(_finishedType.Value.GetDeclaredField(_builder.Name));
#else
            return(_builder.DeclaringType.Module.ResolveField(
                       _builder.GetToken().Token
                       ));
#endif
        }
Example #5
0
        private FieldInfo GetFieldInfo()
        {
            // turn the field builder back into a FieldInfo
#if FEATURE_REFEMIT_FULL
            return(_builder.DeclaringType.Module.ResolveField(
                       _builder.GetToken().Token
                       ));
#else
            return(_finishedType.Value.GetDeclaredField(_builder.Name));
#endif
        }
Example #6
0
    private static Type CreateType(AppDomain currentDomain)
    {
// <Snippet2>

        // Create an assembly.
        AssemblyName myAssemblyName = new AssemblyName();

        myAssemblyName.Name = "DynamicAssembly";
        AssemblyBuilder myAssembly =
            currentDomain.DefineDynamicAssembly(myAssemblyName, AssemblyBuilderAccess.Run);
        // Create a dynamic module in Dynamic Assembly.
        ModuleBuilder myModuleBuilder = myAssembly.DefineDynamicModule("MyModule");
        // Define a public class named "MyClass" in the assembly.
        TypeBuilder myTypeBuilder = myModuleBuilder.DefineType("MyClass", TypeAttributes.Public);

        // Define a private String field named "MyField" in the type.
        FieldBuilder myFieldBuilder = myTypeBuilder.DefineField("MyField",
                                                                typeof(string), FieldAttributes.Private | FieldAttributes.Static);

        // Create the constructor.
        Type[]             constructorArgs = { typeof(String) };
        ConstructorBuilder constructor     = myTypeBuilder.DefineConstructor(
            MethodAttributes.Public, CallingConventions.Standard, constructorArgs);
        ILGenerator constructorIL = constructor.GetILGenerator();

        constructorIL.Emit(OpCodes.Ldarg_0);
        ConstructorInfo superConstructor = typeof(Object).GetConstructor(new Type[0]);

        constructorIL.Emit(OpCodes.Call, superConstructor);
        constructorIL.Emit(OpCodes.Ldarg_0);
        constructorIL.Emit(OpCodes.Ldarg_1);
        constructorIL.Emit(OpCodes.Stfld, myFieldBuilder);
        constructorIL.Emit(OpCodes.Ret);

        // Create the MyMethod method.
        MethodBuilder myMethodBuilder = myTypeBuilder.DefineMethod("MyMethod",
                                                                   MethodAttributes.Public, typeof(String), null);
        ILGenerator methodIL = myMethodBuilder.GetILGenerator();

        methodIL.Emit(OpCodes.Ldarg_0);
        methodIL.Emit(OpCodes.Ldfld, myFieldBuilder);
        methodIL.Emit(OpCodes.Ret);
        Console.WriteLine("Name               :" + myFieldBuilder.Name);
        Console.WriteLine("DeclaringType      :" + myFieldBuilder.DeclaringType);
        Console.WriteLine("Type               :" + myFieldBuilder.FieldType);
        Console.WriteLine("Token              :" + myFieldBuilder.GetToken().Token);
        return(myTypeBuilder.CreateType());
// </Snippet2>
    }
Example #7
0
        public void ResolveFieldTokenFieldBuilder()
        {
            AssemblyBuilder ab = genAssembly();
            ModuleBuilder   mb = ab.DefineDynamicModule("foo.dll", "foo.dll");

            TypeBuilder  tb = mb.DefineType("foo");
            FieldBuilder fb = tb.DefineField("foo", typeof(int), 0);

            tb.CreateType();

            FieldInfo fi = mb.ResolveField(fb.GetToken().Token);

            Assert.IsNotNull(fi);
            Assert.AreEqual("foo", fi.Name);
        }