为了账号安全,请及时绑定邮箱和手机立即绑定

ExpandoObject的真正好处是什么?

ExpandoObject的真正好处是什么?

芜湖不芜 2019-08-14 16:20:22
ExpandoObject的真正好处是什么?添加到.NET 4 的ExpandoObject类允许您在运行时任意设置对象的属性。使用a Dictionary<string, object>或者甚至是Hashtable有什么优势吗?据我所知,这只是一个哈希表,您可以使用稍微简洁的语法访问。例如,为什么这样:dynamic obj = new ExpandoObject();obj.MyInt = 3;obj.MyString = "Foo";Console.WriteLine(obj.MyString);真的比以下更好,或者大不相同:var obj = new Dictionary<string, object>();obj["MyInt"] = 3;obj["MyString"] = "Foo";Console.WriteLine(obj["MyString"]);使用ExpandoObject而不仅仅使用任意字典类型可以获得什么真正的优势,除了不明显你正在使用将在运行时确定的类型。
查看完整描述

3 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

一个优点是绑定方案。数据网格和属性网格将通过TypeDescriptor系统获取动态属性。此外,WPF数据绑定将理解动态属性,因此WPF控件可以比字典更容易绑定到ExpandoObject。

在某些情况下,可能还需要考虑与动态语言的互操作性,这些语言将期望DLR属性而不是字典条目。


查看完整回答
反对 回复 2019-08-14
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

对我来说真正的好处是来自XAML的完全轻松的数据绑定:

public dynamic SomeData { get; set; }

...

SomeData.WhatEver = "Yo Man!";

...

 <TextBlock Text="{Binding SomeData.WhatEver}" />


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 2597 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信