XmlDocument接口解析代码分析警告CA1059

时间:2015-09-15 16:24:55

标签: c# code-analysis

我有一个界面,当我运行Visual Studio的代码分析工具时,我收到错误:

  

CA1059 会员不应暴露某些具体类型

     

修改成员'ISharedRepository.RunNewsHeadlinesReport(string)'以便它   不再暴露具体类型'XmlDocument'。使用IXPathNavigable   表示XML数据   源。 Ev.Pharma.Business ISharedRepository.cs 8

我的界面是:

public interface ISharedRepository
{
    XmlDocument RunWhatsNewHeadlinesReport();
    XmlDocument RunNewsHeadlinesReport(string reportId);
}

我正在使用XmlDocument,因为代码旨在使用一些遗留代码,并且修改文档的能力至关重要。我很想使用XDocument,但是有很多代码需要更改才能使用XDocument,我必须将XmlDocument强制转换为XDocument,以使代码工作。

我可以在网上找到的建议是使用IXPathNavigable接口代替XmlDocument但是这样做我不再能够调用XmlDocument方法,因为这些方法不是IXPathNavigable接口的一部分。

这个错误对我来说似乎没有意义,因为我从未计划将XmlDocument换成另一种具体类型。我应该只是抑制错误,还是应该以某种方式更改我的代码以消除警告?

1 个答案:

答案 0 :(得分:3)

只需使用常识。如果你经常使用XmlDocument的功能 - 没有问题留在界面。那不是"错误"但是建议。即使在此代码分析警告(https://msdn.microsoft.com/en-us/library/ms182160.aspx)的描述中,也要说明:

  

何时禁止警告

     

如果需要具体类型提供的特定功能,则可以安全地禁止来自此规则的消息。

因此,如果你正如你所说的那样使用XmlDocument的特定功能 - 只是压制它。