0

現在、同じクラスの別のプロパティでプロパティを検証しようとしています。次のようなエラーが表示されました。

非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です

この種のエラーは、次のコード スニペットに関して、私にとって絶対に理にかなっています。しかし、とにかく、プロパティ B (私の例ではレベル) の値のために、プロパティ A (私の例では OrderNumber) を検証しようとします。

検証アノテーションを使用してそれを行う可能性はありますか?

これは現在私のコードです:

    public class A
    {
        /// <summary>
        /// Level 
        /// </summary>
        public string Level { get; set; }

        public B B {get;set;}
    }

    public class B
    {
        /// <summary>
        /// Order Number
        /// </summary>
        [Level(A.Level)]
        public int? OrderNumber { get; set; }
    }



    public class LevelAttribute : ValidationAttribute
    {

        private string Dlevel { get; set; }

        public LevelAttribute(string dlevel)
        {
            this.Dlevel = dlevel;
        }

        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value!=null && (Dlevel.Equals("D1")||Dlevel.Equals("D2")))
            {
                return new ValidationResult("Invalid Error Message");
            }
            return ValidationResult.Success;
        }
    }

手伝ってくれてありがとう。

4

1 に答える 1