0

我被困在一个问题上。我有这样的代码:

ITest test= ObtainObject(); //ObtainObjectimplementation omitted
Type type = test.GetType();
MethodInfo method = type.GetMethod("Display");
method.Invoke(test, new object[] {"hi"});

interface ITest {
    [LoggerAspect]
    Display(String msg);
}

class Test : ITest 
{
    public void Display(String msg) 
    {
        MessageBox.Show(msg);   
    }
}

问题是当我更换

method.Invoke(test, new object[] {"hi"});

test.Display("Hi")

一切,包括方面,工作正常。测试是一个代理对象,如果我在该代理上调用调用它会抛出我

TargetException: Object does not match target type

问题是我需要使用反射,你们有没有遇到过这样的问题?感谢您的建议

4

1 回答 1

0

为什么Display接口中的方法没有定义任何返回类型?我认为这甚至不应该首先编译。

您还应该考虑显示ObtainObject代码,这样我们就可以确切地知道您是如何获得界面的。除此之外,我觉得我做不了太多。

于 2013-06-12T12:55:39.297 回答