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. Мы будем улучшать структурированные шаблоны до класса и в целом до уровня дизайна в одной из следующих версий. Спасибо, и продолжайте в том же духе! Нам понадобится много дел:)