我如何知道xaml已被弃用?

问题描述:

我用的是下面的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编写的某个控件现在已被弃用?

一个很好的静态分析工具应该能够告诉你什么时候使用某些已被弃用的东西。在某些情况下,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