我想创建一个匿名类型,我可以动态地设置属性名称。它不一定是一个匿名类型。我想实现的是动态设置任何对象属性名称。它可以是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