public DynamicMethodHandle(MethodInfo info, params object[] parameters) { if (info == null) { this.DynamicMethod = null; } else { this.MethodName = info.Name; var infoParams = info.GetParameters(); object[] inParams = null; if (parameters == null) { inParams = new object[] { null }; } else { inParams = parameters; } var pCount = infoParams.Length; if (pCount > 0 && ((pCount == 1 && infoParams[0].ParameterType.IsArray) || (infoParams[pCount - 1].GetCustomAttributes(typeof(ParamArrayAttribute), true).Length > 0))) { this.HasFinalArrayParam = true; this.MethodParamsLength = pCount; this.FinalArrayElementType = infoParams[pCount - 1].ParameterType; } this.DynamicMethod = DynamicMethodHandlerFactory.CreateMethod(info); } }
public DynamicMemberHandle(FieldInfo info) : this( info.Name, info.FieldType, DynamicMethodHandlerFactory.CreateFieldGetter(info), DynamicMethodHandlerFactory.CreateFieldSetter(info)) { }
public DynamicMemberHandle(PropertyInfo info) : this( info.Name, info.PropertyType, DynamicMethodHandlerFactory.CreatePropertyGetter(info), DynamicMethodHandlerFactory.CreatePropertySetter(info)) { }