1: FieldBuilder ValueField = TypeBuilder.DefineField("_Value", typeof(string), FieldAttributes.Private);
2:
3: PropertyBuilder Property = TypeBuilder.DefineProperty("Value", PropertyAttributes.None, typeof(string), null);
4:
5: MethodAttributes GetSetAttributes = MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig | MethodAttributes.Virtual;
6:
7: MethodBuilder ValuePropertyGet = TypeBuilder.DefineMethod("get_Value", GetSetAttributes, typeof(string), Type.EmptyTypes);
8: ILGenerator Generator = ValuePropertyGet.GetILGenerator();
9: Generator.Emit(OpCodes.Ldarg_0);
10: Generator.Emit(OpCodes.Ldfld, ValueField);
11: Generator.Emit(OpCodes.Ret);
12:
13:
14: MethodBuilder ValuePropertySet = TypeBuilder.DefineMethod("set_Value", GetSetAttributes, null, new Type[] { typeof(string) });
15:
16: Generator = ValuePropertySet.GetILGenerator();
17:
18: Generator.Emit(OpCodes.Ldarg_0);
19: Generator.Emit(OpCodes.Ldarg_1);
20: Generator.Emit(OpCodes.Stfld, ValueField);
21: Generator.Emit(OpCodes.Ret);
22:
23: Property.SetGetMethod(ValuePropertyGet);
24: Property.SetSetMethod(ValuePropertySet);