2009-12-01 112 views
1

我用的是下面的XAML在WPF:我如何知道xaml已被棄用?

<Style TargetType="{x:Type Border}"> 
    <Setter Property="BitmapEffect"> 
    <Setter.Value> 
     <BitmapEffectGroup> 
      <DropShadowBitmapEffect ShadowDepth="1"/> 
     </BitmapEffectGroup> 
    </Setter.Value> 
    </Setter> 
</Style> 

當我發現DropShadowBitmapEffect現在贊成DropShadowEffect的棄用:

<Style TargetType="{x:Type Border}"> 
    <Setter Property="Effect"> 
     <Setter.Value> 
      <DropShadowEffect></DropShadowEffect> 
     </Setter.Value> 
    </Setter> 
</Style> 

但我在一個幸運的方式知道這一點!我如何知道用xaml編寫的某個控件現在已被棄用?

回答

2

一個很好的靜態分析工具應該能夠告訴你什麼時候使用某些已被棄用的東西。在某些情況下,C#編譯器會告訴你。事實上,在這種情況下,R#和C#編譯器都會接受這樣一個事實,即您使用的屬性標記爲Obsolete,如果您將其分配給C#代碼。

不幸的是,在這個時候,它似乎並不認爲是R#靜態分析程序或XAML編譯器會拿起如果您使用過時的屬性或XAML元素。但是,它看起來似乎R#中的智能感知功能會刪除不推薦使用的項目,即使在編輯XAML時也是如此。

我肯定會檢查出fxcop以查看它是否可以與XAML一起使用,並查看是否有規則檢查Obsolete成員的用法。

編輯

R# (or Resharper)是Visual Studio的一個有用的插件,讓很多很酷的功能,包括一些在編輯器中的靜態分析。

+0

對不起我的無知......但什麼是R#? – Ricibald 2009-12-02 15:27:16

+0

哦,我很抱歉。 R#= resharper – dustyburwell 2009-12-02 17:05:49