2017-02-16 3 views
0

は私が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")..... 

のようなものだが、私はかなりそれを終了する方法がわかりません。

答えて

1
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クラスのようなものを使って、実際にあなたのオブジェクトに対して検証を実行してください。

関連する問題