System.Reflection.Emit.DynamicMethod.CreateDelegate C# (CSharp) Method

CreateDelegate() private method

private CreateDelegate ( System delegateType ) : System.Delegate
delegateType System
return System.Delegate
        public sealed override System.Delegate CreateDelegate(System.Type delegateType) { throw null; }
        [System.Security.SecuritySafeCriticalAttribute]

Same methods

DynamicMethod::CreateDelegate ( System delegateType, object target ) : System.Delegate

Usage Example

Esempio n. 1
1
        internal static GenericGetter CreateGetField(Type type, FieldInfo fieldInfo)
        {
            DynamicMethod dynamicGet = new DynamicMethod("_", typeof(object), new Type[] { typeof(object) }, type);

            ILGenerator il = dynamicGet.GetILGenerator();

            if (!type.IsClass) // structs
            {
                var lv = il.DeclareLocal(type);
                il.Emit(OpCodes.Ldarg_0);
                il.Emit(OpCodes.Unbox_Any, type);
                il.Emit(OpCodes.Stloc_0);
                il.Emit(OpCodes.Ldloca_S, lv);
                il.Emit(OpCodes.Ldfld, fieldInfo);
                if (fieldInfo.FieldType.IsValueType)
                    il.Emit(OpCodes.Box, fieldInfo.FieldType);
            }
            else
            {
                il.Emit(OpCodes.Ldarg_0);
                il.Emit(OpCodes.Ldfld, fieldInfo);
                if (fieldInfo.FieldType.IsValueType)
                    il.Emit(OpCodes.Box, fieldInfo.FieldType);
            }

            il.Emit(OpCodes.Ret);

            return (GenericGetter)dynamicGet.CreateDelegate(typeof(GenericGetter));
        }
All Usage Examples Of System.Reflection.Emit.DynamicMethod::CreateDelegate