Ejemplo n.º 1
0
        public EModel Constructor <T1>(params object[] parameters)
        {
            Type[] arrayType = new Type[1];
            arrayType[0] = typeof(T1);
            ConstructorInfo ctor = TypeHandler.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, arrayType, null);

            return(ExecuteConstructor(ctor, parameters));
        }
Ejemplo n.º 2
0
        public EModel Constructor <T1, T2, T3, T4, T5, T6>(params object[] parameters)
        {
            Type[] arrayType = new Type[5];
            arrayType[0] = typeof(T1);
            arrayType[1] = typeof(T2);
            arrayType[2] = typeof(T3);
            arrayType[3] = typeof(T4);
            arrayType[4] = typeof(T5);
            arrayType[5] = typeof(T6);
            ConstructorInfo ctor = TypeHandler.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, arrayType, null);

            return(ExecuteConstructor(ctor, parameters));
        }
Ejemplo n.º 3
0
 public EModel UseDefaultConstructor()
 {
     if (TypeHandler.IsClass && !TypeHandler.IsArray && TypeHandler != typeof(string) && Builder != null)
     {
         //使用默认构造函数
         ConstructorInfo ctor = TypeHandler.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[0], null);
         if (ctor == null)
         {
             throw new InvalidOperationException("Type [" + TypeHandler.FullName + "] should have default public or non-public constructor");
         }
         il.REmit(OpCodes.Newobj, ctor);
         il.EmitStoreBuilder(Builder);
     }
     else if (IsStruct)
     {
         il.REmit(OpCodes.Ldloca_S, Builder);
         il.InitObject(TypeHandler);
     }
     return(this);
 }