문제

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;}
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top