ホームページ >バックエンド開発 >C++ >.NET 4動的オブジェクトからプロパティと値を取得するにはどうすればよいですか?

.NET 4動的オブジェクトからプロパティと値を取得するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-22 23:17:15173ブラウズ

How to Retrieve Properties and Values from a .NET 4 Dynamic Object?

.NET 4 の動的オブジェクトからプロパティを取得する

.NET 4 で dynamic キーワードを使用して宣言された動的オブジェクトは、リフレクションを介してプロパティ値を取得しようとすると問題を引き起こす可能性があります。

質問:

動的オブジェクトから属性名とそれに対応する値の辞書を取得するにはどうすればよいですか?

例:

<code class="language-csharp">dynamic s = new ExpandoObject();
s.Path = "/Home";
s.Name = "Home";

// 如何枚举 Path 和 Name 属性并检索它们的值?
IDictionary<string, object> propertyValues = ???</code>

答え:

ExpandoObject オブジェクトの場合、解決策は非常に簡単です。 ExpandoObject は、そのプロパティの IDictionary<string, object> インターフェースを実装します。

<code class="language-csharp">IDictionary<string, object> propertyValues = (IDictionary<string, object>)s;</code>

このメソッドはすべての動的オブジェクトに対して機能しない可能性があることに注意してください。より一般的な動的オブジェクトの場合は、IDynamicMetaObjectProvider 経由で DLR を使用する必要があります。

以上が.NET 4動的オブジェクトからプロパティと値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。