在Unity中获取原始类型的截获对象

时间:2012-10-18 14:59:40

标签: c# .net unity-container

如何获取Unity的VirtualMethodInterceptor拦截的'原始'类型的代理对象? 我有类似的东西:

T obj = (T)Intercept.NewInstance(typeof(T), new VirtualMethodInterceptor(), new[] { new MyInterceptor() });

然后当我要求obj的类型时,它会像DynamicModule.ns.Wrapped_TheRealType_7615f35579e1442192a7aaf806733b7b

如何通过代码获取TheRealType类型?

1 个答案:

答案 0 :(得分:2)

您可以下降生成类型的继承层次结构,直到找到正确的继承层次结构。

Type original = target.GetType();
while (original.Name.StartsWith("Wrapped_"))
{
  original = original.BaseType;
}

不漂亮,但它应该可以解决问题。