首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fody PropertyChanged干扰FxCop

Fody PropertyChanged干扰FxCop
EN

Stack Overflow用户
提问于 2013-08-09 16:07:57
回答 1查看 347关注 0票数 2

我目前正在进行一个项目,我们希望使用Fody PropertyChanged IL编织器。它看起来非常有效,但是它正在对我们构建在visual中的FxCop分析做一些奇怪的事情。

我们启用了CA1062CA2214:前者验证公共方法的参数,后者在构造函数中检查对可重写方法的调用。

第二个原因是我们使用的是Caliburn.Micro,它提供了一个叫做NotifyOfPropertyChanged的方法,这个方法是虚拟的。这是将方法更改为非虚拟的简单修正。

第一个问题要难得多,而且似乎是随机的。我们一直是验证get中的论点的核心,在Fody之前没有任何FxCop分析错误,但是当我通过NuGet添加它时,FxCop看到了一些不应该更改任何编织的属性代码的地方的变化。在Fody之前和之后,我甚至查看了非编译源代码的不同之处,并且在方法根本没有改变的地方存在FxCop冲突。

因此,我的问题是,我是否可以在分析完成后再进行Fody编织,或者是否有其他方法可以让Fody和FxCop进行良好的交互?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-12 12:51:44

示例:

代码语言:javascript
复制
public class Base : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
            handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

public class Descendent : Base
{
    public Descendent()
    {
        DetermineDefaultMyPropertyValue();
    }

    public string MyProperty { get; set; }

    private void DetermineDefaultMyPropertyValue()
    {
        MyProperty = "Default value"; 
    }

    protected override void OnPropertyChanged(string propertyName)
    {
        // some property changed logic
    }
}

可以通过将“自动实现”属性更改为使用支持字段来解决此问题。(只有在构造对象时设置的对象。)

代码语言:javascript
复制
public class Descendent : Base
{
    public Descendent()
    {
        DetermineDefaultMyPropertyValue();
    }

    private string _myProperty;
    public string MyProperty {
        get { return _myProperty; }
        set { _myProperty = value; }
    }

    private void DetermineDefaultMyPropertyValue()
    {
        _myProperty = "Default value"; 
    }

    protected override void OnPropertyChanged(string propertyName)
    {
        // some property changed logic
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18151086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档