C# 中如何有条件设置必填字段

public class tbPrProInfoMetadata
{
        [Display(Name = "代理编号")]
        public string ProNo;

}

按上面代码来说,如果对 ProNo 字段要求不为空时 可以在代码中加上

[Required(ErrorMessage = "{0}不能为空"]

而如果在某些条件下这个字段可以 为空那要怎么做呢?
后来发现 Required 内有一个属性-----AllowEmptyStrings
C#里有对它进行介绍 “获取或设置一个值,该值指示是否允许空字符串”
现在比较有问题的是,我想进行获取一个BOOL值 。但无从下手
如何做呢,求各位大佬指点

从System.ComponentModel.DataAnnotations.ValidationAttribute派生自己的规则
写验证过滤器读取你的特性,然后自己判断