【发布时间】:2020-07-13 12:19:07
【问题描述】:
假设我有这个界面
public interface ITest
{
int Property1 { get; set; }
void Method1();
string GetMethod1();
void MethodWithParam(string str);
}
如何围绕它创建一个包装器对象?
然后捕获调用的方法或访问的参数和值等。
例如:
var myWrapper = GetWrapper<ITest>();
myWrapper.Property1 = 7;
我如何能够使用反射或其他什么来了解以下内容:
正在调用的参数名称和正在设置的值
var data = myWrapper.GetMethod1("Test");
获取“GetMethod1”的方法名和参数,然后根据它返回一个值?
希望是有道理的
【问题讨论】:
-
你想通过包装来达到什么目的?
-
基本上。一个通用包装器,它接受你给它的任何接口。并使用正在访问的内容调用外部 API(尚未构建)。所以在上面的例子中,如果我调用 myWrapper.GetMethod1("Test")。然后我将传递以下数据:方法 - GetMethod1 参数 - “测试”。然后得到响应并返回这个
-
如果调用 myWrapper.Property1 = 7。我想知道要传递给 API 的属性名称和值。
-
您可以查看模板(或 .net 中的泛型类型)。
-
我知道什么是泛型类型。但这不是我寻求帮助的目的。
标签: c# reflection interface