Tag: createinstance

如何将parameter passing给Activator.CreateInstance <T>()

我想创build一个我在一个generics方法中指定的types的实例。 这种types有一些重载的构造函数。 我想能够传递参数给构造函数,但是 Activator.CreateInstance<T>() 没有看到有这个作为一个选项。 还有另一种方法吗?

快速创build对象而不是Activator.CreateInstance(type)

我试图改善我们的应用程序的性能。 我们有很多Activator.CreateInstance调用导致一些悲伤。 我们基于一个接口(ITabDocument)来实例化很多类,然后环顾四周,我想到了使用这个代码: 代码不会比使用我们拥有的Activator.CreateInstance代码更好。 public static Func<T> CreateInstance<T>(Type objType) where T : class, new() { var dynMethod = new DynamicMethod("DM$OBJ_FACTORY_" + objType.Name, objType, null, objType); ILGenerator ilGen = dynMethod.GetILGenerator(); ilGen.Emit(OpCodes.Newobj, objType.GetConstructor(Type.EmptyTypes)); ilGen.Emit(OpCodes.Ret); return (Func<T>)dynMethod.CreateDelegate(typeof(Func<T>)); } 我想知道为什么这是我所做的是: ITabDocument document = CreateInstance<ITabDocument>(Type.GetType("[Company].Something")); 有没有更好的方法来创build可以协助上述的对象? 当你不确定具体types时有点难。