我试图在 C# 项目上使用 fxCop 作为 C# 编码标准的一种基础。
我使用的项目称为 S#arp Architecture,可在此处免费获得:S#Arp Arch
现在,如果我运行 fxCop(大多数事情已经修复),我需要修复构造函数中可覆盖方法的 CA2214 fxcop 错误。
目前一段违规代码如下所示:
public class Region : Entity, IHasAssignedId<int>
{
public Region(string description)
{
Check.Require(!string.IsNullOrEmpty(description));
this.Description = description;
}
protected Region()
{
}
[DomainSignature]
> public virtual string Description { get; protected set; }
public virtual void SetAssignedIdTo(int assignedId)
{
Id = assignedId;
}
}
大部分在其他 cd 文件中都是这样调用的:
public static RegionDto Create(Region region)
{
if (region == null)
{
return null;
}
return new RegionDto()
{
Id = region.Id,
> Description = region.Description
};
}
我尝试更改方法的类型(私有/受保护等),但 fxCop 和单元测试经常存在冲突的需求,fxcop 说它不喜欢使用虚拟方法的构造函数,但单元说方法应该是公共/受保护的虚拟或受保护的内部虚拟,捕获 22 个 lil 位?
因此,我们将不胜感激修复此 fxcop 规则的任何帮助,谢谢。
(错误发生在标有 > 的行上,即虚拟 get set 方法,当更改另一个 > 时,它会抱怨)