我正在使用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
{
...
}
}
非常感谢。
答案 0 :(得分:0)
ReSharper 5,AFAIK目前无法实现。我们将改进结构化模式,以便在下一个版本中改进设计级别。谢谢,并保持这个例子来!我们需要很多案例:))