リフレクションを使用してデータ変換を簡素化します:文字列からプロパティ値の取得
開発者は、リフレクションを使用してデータ変換を最適化することを目的としており、プロパティ値の取得プロセスの簡素化に焦点を当てています。 課題は、明示的なタイプの処理を避け、代わりに文字列プロパティ名から直接値を取得することでした。
それは可能ですか?
はい、リフレクションにより、データ型を明示的に定義する必要なく、文字列からプロパティ値を取得できます。 解決策:これは、反射内の
およびメソッドを使用して実現できます。
GetProperty
GetValue
コードの例:
次のコードは、合理化されたアプローチを示しています:
この
メソッドは、オブジェクト(<code class="language-csharp">public static object GetPropValue(object src, string propName) { return src.GetType().GetProperty(propName)?.GetValue(src, null); }</code>)とプロパティ名の文字列(
)を入力として取得します。 文字列名に基づいてプロパティを見つけるためにGetPropValue
を使用します。 Null-Conditional Operator(src
その後、プロパティの値を取得します。 2番目の引数がデフォルトのバインディングを使用してpropName
を渡します。GetProperty
?.
GetValue
重要な考慮事項:null
エラー処理が重要です。 この改善されたバージョンには、入力オブジェクトまたはプロパティがnullまたは存在しない場合、例外を防ぐためのnullチェックが含まれます。 潜在的な例外を優雅に管理するために、堅牢なエラー処理を生産環境に追加する必要があります。
以上が反射は、明示的なタイプ処理なしで文字列からプロパティ値を取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。