【问题标题】:XmlDocument interface to resolve code analysis warning CA1059XmlDocument 接口解决代码分析警告 CA1059
【发布时间】:2015-09-16 00:32:38
【问题描述】:

我有一个界面,当我运行 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 换成不同的具体类型。我应该只是抑制错误还是应该以某种方式更改我的代码以消除警告?

【问题讨论】:

    标签: c# code-analysis


    【解决方案1】:

    请使用常识。如果您经常使用 XmlDocument 的功能 - 将其留在界面中也没问题。那不是“错误”,而是建议。即使在此代码分析警告 (https://msdn.microsoft.com/en-us/library/ms182160.aspx) 的描述中,也说明了:

    何时禁止警告

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

    所以,如果您按照您所说的那样使用 XmlDocument 的特定功能 - 只需抑制它。

    【讨论】:

    • 大概这样做的唯一连锁反应是对 XmlDocument 的依赖,如果我取消警告,还有什么需要注意的吗?
    • 没有效果 - 这只是你的指导方针,这样你就可以改进你的代码风格。
    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2022-12-05
    • 2021-12-09
    相关资源
    最近更新 更多