我有一个界面,当我运行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换成另一种具体类型。我应该只是抑制错误,还是应该以某种方式更改我的代码以消除警告?
答案 0 :(得分:3)
只需使用常识。如果你经常使用XmlDocument的功能 - 没有问题留在界面。那不是"错误"但是建议。即使在此代码分析警告(https://msdn.microsoft.com/en-us/library/ms182160.aspx)的描述中,也要说明:
何时禁止警告
如果需要具体类型提供的特定功能,则可以安全地禁止来自此规则的消息。
因此,如果你正如你所说的那样使用XmlDocument的特定功能 - 只是压制它。