C#/ Resharper 5结构搜索,检测并警告具有特定属性的类上是否存在任何非虚拟公共方法

时间:2010-04-16 12:41:23

标签: c# resharper resharper-5.0 structural-search

我正在使用LinFu的动态代理向某些类添加一些建议。问题是代理对象只能拦截虚方法,并返回非虚方法的返回类型的默认值。

我可以根据类或其任何方法是否具有拦截属性来判断类是否被代理,例如[交易]

是否可以编写ReSharper 5结构搜索,如果在具有拦截属性的类上定义了任何非虚拟公共方法,则会发出警告。

E.g。

确定

public class InterceptedClass
{
    [Transaction]
    public virtual void TransactionalMethod()
    {
       ...
    }

    public virtual void AnotherMethod()
    {
       ...
    }
}

public class InterceptedClass
{
    [Transaction]
    public virtual void TransactionalMethod()
    {
       ...
    }

    public void AnotherMethod() // non-virtual method will not be called by proxy
    {
       ...
    }
}

非常感谢。

1 个答案:

答案 0 :(得分:0)

ReSharper 5,AFAIK目前无法实现。我们将改进结构化模式,以便在下一个版本中改进设计级别。谢谢,并保持这个例子来!我们需要很多案例:))