如何在不引用Castle DynamicProxy的情况下检测Type是否是生成的DynamicProxy?

Sim*_*mon 7 .net reflection castle castle-dynamicproxy

我正在使用城堡DynamicProxy,并想知道是否有一种方法可以检测Type是否是代理而不引用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....);
Run Code Online (Sandbox Code Playgroud)

谢谢

Aye*_*ien 10

type.Assembly.FullName.StartsWith("DynamicProxyGenAssembly2")
Run Code Online (Sandbox Code Playgroud)

  • type.Assembly.IsDynamic? (4认同)
  • 您想要检测type是否是DynamicProxy代理.那怎么不是特定的城堡? (2认同)

Sim*_*mon 0

到目前为止我有这个丑陋的代码

    private static bool IsDynamic(Type type)
    {
        try
        {
            var location = type.Assembly.Location;
            return false;
        }
        catch (NotSupportedException)
        {
            return true;
        }
    }
Run Code Online (Sandbox Code Playgroud)