SearchableAttribute
クラスのプロパティにタグを付けるという名前の属性があります。ただし、この属性string
でタグ付けできるのは、タイプのプロパティのみです。それを制限するために、クラスのプロパティを分析し、属性の存在を確認し、プロパティのタイプが でない場合を作成[Searchable]
する CodeAnalysis ルールを作成しようとしています。[Searchable]
Problem
string
これは、これまでの Rule クラスにあるものです。
public override ProblemCollection Check(Member member) {
PropertyNode property = member as PropertyNode;
if (property == null) {
return null;
}
if (property.Attributes.Any(a => a.Type.FullName.Equals((typeof(SearchableAttribute)).FullName)
&& !property.Type.FullName.Equals((typeof(string)).FullName)) {
Resolution resolution = getResolution(property);
Problem problem = new Problem(resolution);
Problems.Add(problem);
}
return Problems;
}
これは実際に機能しますが、信じられません...いいえ、タイプの完全な名前を本当に比較する必要があるとは信じたくありません。ただし、の存在を適切に確認しSearchableAttribute
、プロパティのタイプを文字列と比較する方法がわかりません。クリーンでエレガントなソリューションはありませんか?