2009-03-09 4 views

答えて

1

まあ、できません。匿名の型で、名前でアクセスすることはできません。それは全体のポイントです。型を渡すことはできません。型は内部的に存在し、型はSystem.Objectとしてしか公開できません。

いつでもリフレクションを使用してプロパティを掘り下げてその方法でアクセスすることができますが、それ以外の方法はありません。

var q = new { MyProperty = "Hello World" }; 
var t = q.GetType(); 
var hello = t.GetProperty("MyProperty").GetValue(q, null) as string; 
Console.WriteLine(hello); 

このタイプにアクセスする必要がある場合は、名前で識別できるユーザ定義のオブジェクト/タイプを作成する必要があります。

1

厳密に型指定されたビューには渡すことはできませんが、辞書に変換してその方法でプロパティにアクセスできます。

System.Web.Routingの一部として、 "RouteValueDictionary"という名前の新しいオブジェクトがあります。このオブジェクトは、そのコンストラクタまたは匿名オブジェクトとして使用できます。

MVCチームは多くのヘルパーでこれを使用しています。

例:

IDictionary<string, object> myDict = new RouteValueDictionary(anonymousObject); 
関連する問題