C#/Resharper 5 структурный поиск, обнаружение и предупреждение, если какие-либо не виртуальные публичные методы на классах с определенными атрибутами

Я использую динамический прокси-сервер LinFu, чтобы добавить некоторые советы для некоторых классов. Проблема в том, что прокси-объекты могут перехватывать только виртуальные методы и будут возвращать значение по умолчанию возвращаемого типа для не виртуальных методов.

Я могу сказать, является ли класс прокси или нет, основываясь на том, есть ли у класса или любого из его методов атрибут перехвата, например, [Transaction]

Можно ли написать структурный поиск ReSharper 5, который бы предупреждал, если какие-либо не виртуальные публичные методы определены в классе с атрибутом перехвата.

Например

Хорошо

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 ответ

В настоящее время это невозможно с ReSharper 5, AFAIK. Мы будем улучшать структурированные шаблоны до класса и в целом до уровня дизайна в одной из следующих версий. Спасибо, и продолжайте в том же духе! Нам понадобится много дел:)

Другие вопросы по тегам