9

我在服务层有几个方法接口,从 Get 和 FxCop 的Use 属性开始,适当的规则抱怨我应该考虑使用属性。

我尝试使用 SuppressMessageAttribute 但是当它在接口上定义时,它对成员方法没有影响。我是否需要将 SuppressMessageAttribute 放到每个方法中,还是有办法抑制整个类型的CA1024

[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate"]
public interface IProjectService
{
    // Information and statistics about projects
    IList<ProjectInfo> GetProjects();
    ProjectsDashboard GetProjectsDashboard();

    // Project's settings
    ProjectSettings GetProjectSettings(Guid id);

    void SaveProjectSettings(ProjectSettings settings);
}
4

3 回答 3

4

您必须为每个方法添加属性。

于 2009-02-17T15:33:55.547 回答
4

我理解这里需要使用方法。虽然这些方法确实可能不会改变状态,但使用方法暗示了一个冗长/向外的操作,这可能是通过服务类方法的情况。

您不能将您的方法重命名为 LoadProjectSettings 吗?

否则,您确实必须将属性添加到每个方法,或禁用规则。

于 2009-02-17T15:44:55.567 回答
1

不幸的是,您必须将其应用于每种方法。

另外,我在这里没有看到任何理由使用您的 Get 方法。为什么不只拥有只读属性,至少对于 ProjectsDashboard 和IList<ProjectInfo>. 那些不会让我印象深刻的实现会修改实现的状态,并且无论如何都应该是属性。

ProjectSettings 还应该返回一个看起来也是索引的集合。

于 2009-02-17T15:35:39.003 回答