【发布时间】:2013-09-28 18:53:19
【问题描述】:
我正在通过反射调用一个类型的方法,该方法需要几个参数:
var myType = typeof(myClass);
var myMethod = myType.GetMethod("myMethodInClass",
new[] { typeof(string), typeof(string) });
myMethod.Invoke(?, new object[] { "", "" });
我希望目标是 IDataReader,这是该方法将返回的内容,但我显然无法实例化接口的新实例。
【问题讨论】:
-
只需传递一个对象,然后再进行投射。
-
通常将返回值投射到你的界面,比如
(IYourInterface) myMethod.Invoke... -
正如大家所说,你应该创建一个实现接口的对象,然后进行转换。您可能想查看Ninject。依赖注入可能正是您所需要的
-
为什么不
var result = (IDataReader)myMethod.Invoke(new myClass(), new object[] { "", "" });?
标签: c# reflection types interface idatareader