使用构造函数参数

时间:2015-07-10 09:22:05

标签: c# reflection

我想用反射实例化这个类:

new DbAccess<ProductMoveRequestView>(dbSet);

我发现ProductMoveRequestView有反射。我将它作为Type对象。

我尝试使用Activator,通过Type上的MakeGenericType属性和其他变体看到,但我似乎无法找到实例化它的方法。

这就像重复引用一样,但正如我在评论中所说,我仍然需要用参数实例化它。

Type tableType = propertyInfo.PropertyType.GenericTypeArguments.First();
var dbSet = _context.Set(tableType);
Type[] typeArgs = { tableType };
var makeme = typeof(IRepository<>).MakeGenericType(typeArgs);
var o = Activator.CreateInstance(makeme);

创建o时,应将dbSet变量作为参数发送。

解决方案:(我后来发现) 这比我希望的要容易。

Activator.CreateInstance(makeme, constructor, arguments, here);

对不起家伙:)(希望这对其他任何无法使用此功能的人有所帮助:)

0 个答案:

没有答案