我想創建一個匿名類型,我可以動態地設置屬性名稱。它不一定是一個匿名類型。我想實現的是動態設置任何對象屬性名稱。它可以是ExpandoObject等,但字典不適合我。 你有什麼建議? 非常感謝動態創建匿名類型?
回答
只有ExpandoObject
可以有動態屬性。
編輯: 這裏是Expand Object使用的例子(從MSDN描述):
dynamic sampleObject = new ExpandoObject();
sampleObject.TestProperty = "Dynamic Property"; // Setting dynamic property.
Console.WriteLine(sampleObject.TestProperty);
Console.WriteLine(sampleObject.TestProperty .GetType());
// This code example produces the following output:
// Dynamic Property
// System.String
dynamic test = new ExpandoObject();
((IDictionary<string, object>)test).Add("DynamicProperty", 5);
Console.WriteLine(test.DynamicProperty);
是的,我知道這一點。但我可以從字符串數組設置ExpandoObjects屬性爲例? – ward87 2010-10-26 14:38:18
......好吧,或者其他實現'IDynamicMetaObjectProvider'的類型。 – 2010-10-26 14:38:39
ExpandoObject實現了'IDictionary
你可以施放ExpandoObject
到詞典和填充這樣的說法,那麼說明你定會鍵在ExpandoObject上顯示爲屬性名稱...
dynamic data = new ExpandoObject();
IDictionary<string, object> dictionary = (IDictionary<string, object>)data;
dictionary.Add("FirstName", "Bob");
dictionary.Add("LastName", "Smith");
Console.WriteLine(data.FirstName + " " + data.LastName);
+1這非常狂野,我不知道動力有這種能力。其他語言具有類似的功能,這肯定會有一些很好的用例。另一方面,它也可能被非常糟糕地濫用,並且應該得到應有的尊重。 – AaronLS 2013-11-06 21:53:21
- 1. 匿名類型 - 如何動態創建?
- 2. 創建匿名類型!
- 3. CRM LINQ +爲匿名類型創建動態where子句
- 4. 創建一個動態匿名類型變量
- 5. 創建匿名類型在VB
- 6. 綁定匿名類型創建的BindingList
- 7. 從字符串創建匿名類型
- 8. 如何創建匿名類型列表?
- 9. 將匿名類型轉換爲動態
- 10. 動態生成匿名類型
- 11. 動態創建匿名函數?
- 12. 包括動態類型名稱在內的動態類創建
- 13. 迭代和創造新的匿名類型動態
- 14. 的Java如何動態地創建「匿名」類
- 15. 如何動態創建新的匿名類?
- 16. 無法創建類型'匿名類型'的常量值
- 17. 訪問自動創建匿名類型字段
- 18. 多態,泛型和匿名類型C#
- 19. 將動態創建的SQL參數作爲匿名類型傳遞到Dapper中
- 20. 動態類型創建
- 21. 創建動態類型Java
- 22. 匿名類型
- 23. 匿名類型
- 24. 匿名類型
- 25. 匿名類型
- 26. 是否可以創建匿名類型泛型?
- 27. 動態設置C#匿名類型的屬性名稱
- 28. 爲什麼使用匿名類型而不是創建類
- 29. Deserialise匿名類型
- 30. 匿名類型C#
爲什麼字典不適合您? – dtb 2010-10-26 14:35:03
因爲我必須將它綁定到telerik網格的數據源,並且我還動態添加網格的列。 – ward87 2010-10-26 14:36:59