생성자의 우월성 방법 -HELP를 고정합니다
-
18-09-2019 - |
문제
c# 프로젝트에서 c# 코딩 표준의 기초로 fxcop을 사용하려고 시도하고 있습니다.
사용하는 프로젝트는 S#ARP 아키텍처라고하며 여기에서 자유롭게 사용할 수 있습니다. S#arp 아치
이제 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 a lil 비트를 잡습니까?
따라서이 FXCOP 규칙을 수정하는 데 도움이 될 것입니다. 감사합니다.
(오류는 a>, 가상 get set 메소드로 표시된 줄에서 발생하고 다른 사람이 변경 될 때> 불만이있는 곳).
해결책
쉽다. "하지 마라 하다 그 ". 대신 :
private string _description;
public Region(string description)
{
Check.Require(!string.IsNullOrEmpty(description));
_description = description;
}
protected Region()
{
}
[DomainSignature]
public virtual string Description {
get {return _description;}
set {_description = value;}
}
제휴하지 않습니다 StackOverflow