2012-10-17 69 views
3

我們正試圖在構建時標記外部類型的使用(如ConfigurationManager)。如何在.NET中標記外部類型/方法爲廢棄/廢棄?

自定義代碼分析字典可以幫助[1]但僅在項目中包含源代碼的情況下。同樣,Obsolete屬性適用於項目中包含的類型。

我甚至不確定代碼分析規則是否能夠檢查方法體? [2]。

有關如何在構建時標記外部類型/方法的使用的任何建議?

[1] - http://msdn.microsoft.com/en-us/library/bb514188.aspx

[2] - http://msdn.microsoft.com/en-us/library/dd172127(v=vs.90).aspx

回答

0

的一種方式做到這一點是要創建一個自定義的FxCop規則,檢查期間代碼分析相區像這樣的東西:

internal sealed class SampleRule : BaseIntrospectionRule 
{ 

    public override ProblemCollection Check(Member member) 
    { 
     const string typeName = "System.DateTime"; 
     var field = member as Field; 
     if (field == null || field.Type.FullName != typeName) 
      return null; 
     return new ProblemCollection 
     { 
      new Problem(new Resolution(field.Name.Name, "Type {0} is obsolete", typeName)) 
     }; 
    } 
} 

我建議看看this tutorial