草庐IT

expandoobject

全部标签

c# - 将未知(在设计时)属性添加到 ExpandoObject

只是探索c#4。试图让我的头脑了解所有这些动态的东西。对不起,如果这个问题很愚蠢,没有这个领域的经验。如果我有一个ExpandoObject并想在运行时向它添加公共(public)属性(使用get和set),我该怎么做呢?例如,我有一个documentTemplate和一个文档,它有一个指向documentTemplate的属性。这个文档模板有一些标签标题(例如学生之间发展的能力),在制作文档时应该解决这些问题(例如浓度,内存力等)。所以一旦在文档中设置了模板,我想创建一个类,它具有与模板中的标签标题同名的属性,然后使用一些UI元素,例如PropertyGrid,我可以让用户根据标签标

c# - ExpandoObject、DynamicObject 和 dynamic 之间的区别

System.Dynamic.ExpandoObject、System.Dynamic.DynamicObject和dynamic之间有什么区别?你在什么情况下使用这些类型? 最佳答案 dynamic关键字用于声明应该被后期绑定(bind)的变量。如果你想为任何真实或想象的类型使用后期绑定(bind),你可以使用dynamic关键字,编译器会完成剩下的工作。当您使用dynamic关键字与普通实例交互时,DLR对实例的常规方法执行后期绑定(bind)调用。IDynamicMetaObjectProviderinterface允许类控制

c# - 如何检测 ExpandoObject 上是否存在属性?

在javascript中,您可以使用undefined关键字检测属性是否已定义:if(typeofdata.myProperty=="undefined")...在C#中,您将如何使用带有ExpandoObject的动态关键字并且不抛出异常来做到这一点? 最佳答案 根据MSDN声明表明它正在实现IDictionary:publicsealedclassExpandoObject:IDynamicMetaObjectProvider,IDictionary,ICollection>,IEnumerable>,IEnumerable,I

c# - 向 ExpandoObject 动态添加属性

我想在运行时向ExpandoObject动态添加属性。因此,例如要添加一个字符串属性调用NewProp,我想写一些类似的东西varx=newExpandoObject();x.AddProperty("NewProp",System.String);这很容易实现吗? 最佳答案 dynamicx=newExpandoObject();x.NewProp=string.Empty;或者:varx=newExpandoObject()asIDictionary;x.Add("NewProp",string.Empty);

c# - ExpandoObject 的真正优势是什么?

ExpandoObject添加到.NET4的类允许您在运行时任意设置对象的属性。与使用Dictionary相比,这有什么优势吗?,甚至是Hashtable?据我所知,这不过是一个哈希表,您可以使用稍微更简洁的语法来访问它。例如,为什么会这样:dynamicobj=newExpandoObject();obj.MyInt=3;obj.MyString="Foo";Console.WriteLine(obj.MyString);真的比:varobj=newDictionary();obj["MyInt"]=3;obj["MyString"]="Foo";Console.WriteLine(

c# - 将 ExpandoObject 持久化到 MongoDB

我有一个具有任意数量属性的ExpandoObject。我想将这些属性作为BsonDocument保存到MongoDB数据库中。我尝试使用以下代码:privateBsonDocumentGetPlayerDocument(IPlayerplayer){varret=newBsonDocument();ret.Add("FirstName",player.FirstName).Add("LastName",player.LastName).Add("Team",player.Team).Add("Positions",newBsonArray(player.Positions));fore

c# - 如何在asp.net mvc中展平通过JsonResult返回的ExpandoObject?

在运行时编译服务器端动态对象时,我真的很喜欢ExpandoObject,但是在JSON序列化过程中我无法将其展平。首先,我实例化对象:dynamicexpando=newExpandoObject();vard=expandoasIDictionary;expando.Add("SomeProp",SomeValueOrClass);到目前为止一切顺利。在我的MVCController中,我想将它作为JsonResult发送下来,所以我这样做:returnnewJsonResult(expando);这会将JSON序列化为以下内容,供浏览器使用:[{"Key":"SomeProp","

c# - 如何在asp.net mvc中展平通过JsonResult返回的ExpandoObject?

在运行时编译服务器端动态对象时,我真的很喜欢ExpandoObject,但是在JSON序列化过程中我无法将其展平。首先,我实例化对象:dynamicexpando=newExpandoObject();vard=expandoasIDictionary;expando.Add("SomeProp",SomeValueOrClass);到目前为止一切顺利。在我的MVCController中,我想将它作为JsonResult发送下来,所以我这样做:returnnewJsonResult(expando);这会将JSON序列化为以下内容,供浏览器使用:[{"Key":"SomeProp","