如何获取Unity的VirtualMethodInterceptor拦截的'原始'类型的代理对象? 我有类似的东西:
T obj = (T)Intercept.NewInstance(typeof(T), new VirtualMethodInterceptor(), new[] { new MyInterceptor() });
然后当我要求obj
的类型时,它会像DynamicModule.ns.Wrapped_TheRealType_7615f35579e1442192a7aaf806733b7b
如何通过代码获取TheRealType
类型?
答案 0 :(得分:2)
您可以下降生成类型的继承层次结构,直到找到正确的继承层次结构。
Type original = target.GetType();
while (original.Name.StartsWith("Wrapped_"))
{
original = original.BaseType;
}
不漂亮,但它应该可以解决问题。