我想用反射实例化这个类:
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);
对不起家伙:)(希望这对其他任何无法使用此功能的人有所帮助:)