我正在查看带有IBar
对象栏的代码,该对象栏实际上是.net远程处理透明代理(RuntimeServices.IsTransparentProxy为true),对于一组IFoo
类型,这样做:< / p>
var fooValue = bar as IFoo; // BTW, IFoo is always derived from IBar! But not sure if it matters
if (fooValue != null)
// and then eventually call some method on IFoo, we can imagine.
不幸的是,这种类型转换表现不佳,似乎占用了大量的CPU时间。有什么更好的方法可以做到这一点? (不幸的是,因为它是一个透明的代理,你不能做bar.GetType().GetInterfaces()...
)