如何将parameter passing给Activator.CreateInstance <T>()
我想创build一个我在一个generics方法中指定的types的实例。 这种types有一些重载的构造函数。 我想能够传递参数给构造函数,但是
Activator.CreateInstance<T>()
没有看到有这个作为一个选项。
还有另一种方法吗?
是。
(T)Activator.CreateInstance(typeof(T), param1, param2);
作为Activator.CreateInstance的替代方法,链接的url中的FastObjectFactory比Activator更好地执行(从.NET 4.0开始,比.NET 3.5更好,.NET 4.5没有testing/统计)。 请参阅StackOverflow发布统计信息和代码:
如何通过Activator.CreateInstance中的ctor参数或使用IL?
还有另一种方法可以通过命名参数将parameter passing给CreateInstance。
基于此,您可以将数组传递给CreateInstance
。 这将允许你有0或多个参数。
public void CreateInstance<T>(params object[] paramArray) { (T)Activator.CreateInstance(typeof(T), args:paramArray); }