System.Reflection.DynamicMethodCompiler.CreateSetterDelegate C# (CSharp) Method

CreateSetterDelegate() public static method

Creates the setter delegate.
public static CreateSetterDelegate ( Type type, FieldInfo fieldInfo ) : SetterDelegate
type Type The type.
fieldInfo FieldInfo The field info.
return SetterDelegate
        public static SetterDelegate CreateSetterDelegate(Type type, FieldInfo fieldInfo)
        {
            #if !CompactFramework
            DynamicMethod dynamicSet = CreateDynamicSetMethod(type);
            ILGenerator setGenerator = dynamicSet.GetILGenerator();

            setGenerator.Emit(OpCodes.Ldarg_0);
            setGenerator.Emit(OpCodes.Ldarg_1);
            UnboxIfNeeded(fieldInfo.FieldType, setGenerator);
            setGenerator.Emit(OpCodes.Stfld, fieldInfo);
            setGenerator.Emit(OpCodes.Ret);

            return (SetterDelegate)dynamicSet.CreateDelegate(typeof(SetterDelegate));
            #else
            return (obj, newValue) => fieldInfo.SetValue(obj, newValue);
            #endif
        }

Same methods

DynamicMethodCompiler::CreateSetterDelegate ( Type type, PropertyInfo propertyInfo ) : SetterDelegate