2009-07-20 38 views
1

C#プロジェクトでfxCopをC#コーディング標準の基礎として使用しようとしています。コンストラクタのオーバーライド可能なメソッド - 修正するヘルプ

ImはS#のARPアーキテクチャと呼ばれる使用してプロジェクトがここに自由に利用可能である:今S#Arp Arch

私は(ほとんどのものはすでに修正されている)私はオーバーライドメソッドのCA2214のFxCopのエラーを修正する必要が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と単体テストのコンフリクトはありませんが、仮想メソッドを持つコンストラクタのようなものではありませんが、メソッドはpublic/protected仮想または保護された内部仮想でなければならないと言っているユニット(22)ほんの少し?

このfxcopルールを修正する助けがあれば、ありがとうございます。ありがとうございます。

(エラーは、>でマークされた行に発生した仮想のget setメソッドおよびその他を変更する場合>それは文句ところである)

+0

どのラインにエラーがありますか? –

答えて

3

これは簡単です:「ことをしません」。代わりに

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;} 
} 
+0

最終的には、デザインに関する人々の怒りではなく、きちんとした整頓された解決策。あなたがそれについて考えるときは明らかです。 Thxジョン –

関連する問題