lambda式から属性名を抽出
最初の実装には、属性が文字列であると仮定して、lambda式をメンバー式に変換することが含まれていました。ただし、これは文字列属性にのみ適用できます。
この問題を解決するには、より包括的な方法が必要であり、文字列と非ストリング属性を同時に処理できます。次の方法では、解決策が提供されます
このメソッドは、ソースオブジェクトとラムダ式を入力として受け入れ、アクセス可能な属性を示すpropertyInfoオブジェクトを返します。式が属性を引用しない場合、異常を引き起こします。
<code class="language-csharp">public static PropertyInfo GetPropertyInfo<TSource, TProperty>( TSource source, Expression<Func<TSource, TProperty>> propertyLambda)</code>
:
ラムダ式のテキストがmemberexpressionであるかどうか、およびメンバーがPropertyInfoであるかどうかをチェックします。状態が満たされない場合、異常を引き起こします。
以上がC#のラムダ式からプロパティ名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。