2011-06-06 167 views
2

我可以動態創建一個屬性類型屬性名稱爲(匿名)對象,如果名稱和類型我從字符串變量?我可以爲對象動態創建屬性類型和屬性名稱嗎?

+0

您是否問您是否可以在運行時將新屬性添加到匿名對象,或者如果您從字符串變量訪問匿名類型的屬性? – 2011-06-06 19:13:45

回答

1

如果你正在談論匿名類型(如var x = new { Property1 = data1, ...}),那麼我認爲你可以。

你可能會做的是從你已經擁有的那個創建另一個新的匿名類型。要在其中創建XY,你可以通過var Y = new { YProp1 = X.Prop1, YProp2 = X.Prop2, etc}

0

對於匿名類,沒有。這些由編譯器在編譯時定義。

0

C#.NET是一種靜態類型語言,意味着所有類都必須在編譯時定義。所以,對你的問題的下意識回答是

但是,像大多數語言一樣,您可以使用變通辦法。例如,您可以創建一個具有Dictionary<string,object>類型屬性的類,該屬性將您的屬性名稱作爲鍵和屬性值作爲值。

當然,這個缺點是您需要編寫額外的代碼來驗證字典中的數據是否有效......所以它可能不值得。

1

創建Y在C#4.0起,可以使用動態關鍵字與DynamicObject對象基於字典創建/在運行時非常擴展性能像JavaScript。