2009-03-09 33 views

cevap

1

Yapamazsınız. Anonim bir türe, isim ile erişilemez. Bütün nokta bu. Türü geçemezsiniz, tür dahili olarak bulunur ve yalnızca türü System.Object olarak gösterebilirsiniz.

Özelliklerini bulmak ve onlara bu şekilde erişmek için her zaman yansımayı kullanabilirsiniz, ancak bunun dışında bir yol yoktur.

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

sen tipini erişmek gerekiyorsa, isme göre tespit edilebilir bir kullanıcı tanımlı nesne/türünü oluşturmalıdır.

1

Çok yazılan bir görünüme aktaramazsınız, ancak bir sözlüğe dönüştürebilir ve özelliklere bu şekilde erişebilirsiniz.

System.Web.Routing'in bir parçası olarak, kurucu olarak anonim bir nesne olarak kullanılabilecek "RouteValueDictionary" adlı yeni bir nesne var.

MVC ekibi bunu birçok yardımcısında kullanır.

Örnek:

IDictionary<string, object> myDict = new RouteValueDictionary(anonymousObject); 
İlgili konular