Dot-Net
如何在不引用 Castle DynamicProxy 的情況下檢測 Type 是否是生成的 DynamicProxy?
我正在使用城堡 DynamicProxy 並且想知道是否有一種方法可以在不引用 Castle DynamicProxy 的情況下檢測類型是否為代理?
因此,當我使用 Castle DynamicProxy 作為範例時,我想要適用於任何記憶體生成類型的程式碼。
var generator = new ProxyGenerator(); var classProxy = generator.CreateClassProxy<Hashtable>(); Debug.WriteLine(classProxy.GetType().Is....); var interfaceProxy = generator.CreateInterfaceProxyWithoutTarget<ICollection>(); Debug.WriteLine(interfaceProxy.GetType().Is....);謝謝
type.Assembly.FullName.StartsWith("DynamicProxyGenAssembly2")
你可以讓你的動態類型實現一個特定的介面:
public interface IDynamicProxy { } ... ProxyGenerator generator = new ProxyGenerator(); var classProxy = generator.CreateClassProxy(typeof(Hashtable), new[] {typeof(IDynamicProxy)}); Debug.WriteLine(classProxy is IDynamicProxy); var interfaceProxy = generator.CreateInterfaceProxyWithoutTarget(typeof(ICollection), new[] { typeof(IDynamicProxy) }); Debug.WriteLine(interfaceProxy is IDynamicProxy);