我正在尝试通过RealProxy
处理通用方法的调用,但我似乎找不到有关拦截的方法调用中使用的泛型参数的实际类型的信息。以下是代码摘录:
public override IMessage Invoke(IMessage msg)
{
...
string methodName = (string)msg.Properties["__MethodName"];
Type[] parameterTypes = (Type[])msg.Properties["__MethodSignature"];
object[] args = (object[])msg.Properties["__Args"];
MethodInfo method = typeToProxy.GetMethod(methodName, parameterTypes);
...
假设我正在代理一个类似于以下的接口
interface IFactory
{
TService Create<TService>()
}
当我调用代理时
proxied.Create<MyClass>()
我希望能够找出泛型参数的类型是 MyClass
。通过 RealProxy
可以实现吗?