Я использую динамический прокси-сервер LinFu, чтобы добавить некоторые советы для некоторых классов. Проблема заключается в том, что прокси-объекты могут перехватывать только виртуальные методы и возвращают значение по умолчанию возвращаемого типа для не виртуальных методов.
Я могу сказать, является ли класс прокси или нет, основываясь на том, имеет ли класс или какой-либо из его методов атрибут перехвата, например, [Сделка]
Можно ли написать структурный поиск ReSharper 5, который бы предупреждал, если в классе с атрибутом перехвата определены не виртуальные публичные методы.
1007 * Е.Г. *
Ok
public class InterceptedClass
{
[Transaction]
public virtual void TransactionalMethod()
{
...
}
public virtual void AnotherMethod()
{
...
}
}
Bad
public class InterceptedClass
{
[Transaction]
public virtual void TransactionalMethod()
{
...
}
public void AnotherMethod() // non-virtual method will not be called by proxy
{
...
}
}
Большое спасибо.