我需要使用单个属性创建一个非常简单的对象。问题是这个属性的名称是可变的,直到运行时才知道。
我正在使用c#。
我一直在环顾四周,发现很多,似乎是非常啰嗦的方式做我想做的事情(例如Add properties at runtime)。然而,这种类型的解决方案似乎相当过度,所以我真的希望有一种更简单的方法。
为什么吗
我正在开发一个WPF应用程序。在某些情况下,我有组合框,我想处理空值。 我已经在这里找到了一个很棒的解决方案:http://philondotnet.wordpress.com/2009/09/18/how-to-select-null-none-in-a-combobox-listbox-listview/
但是,此解决方案的主要问题(如第二条评论所述)是,如果设置了选择器的DisplayMemberPath,则空值文本显示为空白。 解决此问题的方法是简单地修改NullItem以返回具有属性的对象,其中属性的名称是DisplayMemberPath,值是空值的字符串表示。
答案 0 :(得分:1)
您可以考虑使用
考虑到ExpandoObject实现IDictionary
,您可以将其强制转换为:
var expando = new System.Dynamic.ExpandoObject();
var expandoDic= expando as IDictionary<String, Object>;
expandoDic["Name"] = "Jane";
expandoDic["Surname"] = "Eyre";
var name = expandoDic["Name"];
var surname = expandoDic["Surname"];
var book = name + " " + surname;
输出
按照预期,“简爱”;