2010-04-16 31 views
2

我正在使用LinFu的動態代理向某些類添加一些建議。問題是代理對象只能攔截虛擬方法,並會返回非虛擬方法的返回類型的默認值。C#/ resharper 5結構檢索,檢測並警告有特定屬性的類的非虛擬公共方法

我可以判斷一個類是否通過代理來判斷該類或其任何方法是否具有攔截屬性,例如, [事務]

是否有可能編寫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

OT,但NDepend對於像這樣的東西非常漂亮:) – 2010-04-18 19:00:52

回答

0

ReSharper 5,AFAIK目前無法使用。我們將改進結構化模式,並在下一個版本中改進設計級別。謝謝,並保持這個例子來!我們將需要很多情況:)