1

我在 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 编写的某个控件?

4

1 回答 1

2

一个好的静态分析工具应该能够告诉您何时使用已弃用的东西。在某些情况下,C# 编译器会告诉您。实际上,在这种情况下,Obsolete如果在 C# 代码中分配它,R# 和 C# 编译器都会发现您正在使用标记为 的属性。

不幸的是,目前,如果您在 XAML 中使用过时的属性或元素,R# 静态分析过程或 XAML 编译器似乎都不会启动。但是,R# 中的智能感知功能似乎会删除已弃用的项目,即使在编辑 XAML 时也是如此。

我肯定会检查fxcop以查看它是否可以与 XAML 一起使用,并查看是否有规则来检查 Obsolete 成员的使用情况。

编辑

R#(或 Resharper)是一个有用的 Visual Studio 插件,它提供了许多很酷的功能,包括一些编辑器内静态分析。

于 2009-12-01T18:50:04.277 回答