1

Unity の VirtualMethodInterceptor によってインターセプトされたプロキシ オブジェクトの「元の」タイプを取得するにはどうすればよいですか? 私は次のようなものを持っています:

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

次に、タイプを尋ねると、次のobjようになりますDynamicModule.ns.Wrapped_TheRealType_7615f35579e1442192a7aaf806733b7b

TheRealTypeの Type をコードで取得するにはどうすればよいですか?

4

1 に答える 1

2

正しいタイプに到達するまで、生成されたタイプの継承階層を降順で移動できます。

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

きれいではありませんが、それでうまくいくはずです。

于 2012-10-18T15:23:24.953 に答える