簡體   English   中英

如何從RegularExpressionAttribute中提取正則表達式?

[英]How can I extract the regular expression from a RegularExpressionAttribute?

我有一個像

public class Foo
{
    [RegularExpression(@"([A-Za-z0-9\-_ ]+){1,100}")]
    public string Bar { get; set; }
}

並且出於單元測試的目的,我希望能夠提取出"@"([A-Za-z0-9\\-_ ]+){1,100}"

我知道這就像

string expr = typeof(Foo).GetProperty("Bar").....

但我不太了解如何完成。

var property = typeof(Foo).GetProperty("Bar");
var attribute = property.GetCustomAttribute<RegularExpressionAttribute>();
var expr = attribute?.Pattern;

還是單條語句:

var expr = typeof(Foo).GetProperty("Bar")
                      .GetCustomAttribute<RegularExpressionAttribute>()?.Pattern;

注意:我認為您不應該從屬性屬性中提取數據進行單元測試。 我要么將屬性驗證留給驗收測試。 或使用諸如Validator類之類的東西在對象上實際運行驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM