小编Ott*_*inz的帖子

FxCop投诉:暴露的具体xml类型和糟糕的改进

我想保存某些类,因为在我的情况下xml-serialization不会这样做我将值手动保存到xml文档中.工作正常,但FxCop不喜欢它,因为FxCop通常给出了很好的建议和原因,为什么我不应该以某种方式做事情,我试着让它快乐.

这一次,我不明白这是一个改进.

这就是我所拥有的:

public void Save()
{
      XmlDocument doc = new XmlDocument();
      XmlNode XmlNodeJob = doc.CreateElement("Job");
      doc.AppendChild(XmlNodeJob);
      OtherclassSave2(XmlNodeJob);//Node as Parameter
 }

 public void OtherclassSave2(XmlNode node)
 {

 }
Run Code Online (Sandbox Code Playgroud)

这就是FxCop所抱怨的: "修改成员'OtherclassSave2(XmlNode)',以便它不再公开具体类型'XmlNode'.使用IXPathNavigable来表示XML数据源."

现在我的解决方案很棒:

    public void Save()
    {
        XmlDocument doc = new XmlDocument();
        XmlNode XmlNodeJob = doc.CreateElement("Job");
        doc.AppendChild(XmlNodeJob);
        OtherclassSave2(XmlNodeJob.CreateNavigator());//Interface from a node's navigator
    }

    public void OtherclassSave2(IXPathNavigable nav)
    {
        XmlNode node = (XmlNode)(nav.CreateNavigator().UnderlyingObject);

    }
Run Code Online (Sandbox Code Playgroud)

这样我就可以在另一个方法中得到我的节点而且FxCop很高兴,但我真的没有看到改进,我需要一个节点来添加内容,而不是要阅读.

我虽然将void SaveInThisNode(XmlNode)更改为XmlNode GetMeTheNode()但是要通过CreateElements创建节点,我需要XmlDocument对象,我不允许将其用作参数,但我可以在每一步创建新的XmlDocuments,很好.

我的解决方案很简单,并且可以完成我希望它做的所有事情,但是FxCop似乎不允许解决方案显然更糟,更复杂.

c# xml xpath fxcop

6
推荐指数
1
解决办法
1624
查看次数

C++构造函数代码......这叫做什么?

这是我在程序代码中找到的:

pff::NAS::NAS( const NAS& p_Other ) 
: pff::MCCI(_T("NAS"))           //<- ?
, m_strS(_T("JustAString"))      //<- ?
, m_strK(_T("JustAString"))      //<- ?
, m_strR(p_Other.GetmystrR())    //<- ?
, m_Swap()
{ }
Run Code Online (Sandbox Code Playgroud)

而我的问题是: 这些(//<- ?)标记的行什么?我喜欢搜索它应该做什么,为什么做这个代码的人使用它.

c++ constructor

1
推荐指数
1
解决办法
112
查看次数

标签 统计

c# ×1

c++ ×1

constructor ×1

fxcop ×1

xml ×1

xpath ×1