特定の属性を持つプロパティ リストの取得
非としてマークされた特定の属性を持つパブリック プロパティのリストを取得するにはmultiple (AllowMultiple 属性が false に設定されている) の場合、一般的なアプローチは、プロパティをループして属性をチェックすることです。 present.
foreach (var property in t.GetProperties()) { var attributes = property.GetCustomAttributes(typeof(MyAttribute), true); if (attributes.Length == 1) { // Property with custom attribute } }
ただし、同じ結果を達成する最適化された方法は、以下に示すように、LINQ の where 句と Attribute.IsDefined() を利用することです。
var properties = t.GetProperties().Where( property => Attribute.IsDefined(property, typeof(MyAttribute)));
この代替方法属性インスタンスを作成する必要がなくなり、より効率的なアプローチになります。
以上が特定の非複数属性を持つプロパティのリストを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。