只是探索c#4。试图让我了解所有这些动态的东西。抱歉,这个问题很傻,没有这个领域的经验。
如果我有一个ExpandoObject并想在运行时为其添加公共属性(带有get和set),我将如何做呢?
例如,我有一个documentTemplate和一个文档,该文档具有指向documentTemplate的属性。该documentTemplate具有一些标签Titles(例如,学生之间发展的能力),在制作文档时应解决这些问题(例如,浓度,记忆力等)。因此,一旦在文档中设置了模板,我就想创建一个类,该类具有与Template中的标签标题同名的属性,然后使用一些UI元素(例如PropertyGrid),使用户根据标签标题填写标签值。
谢谢阅读!
我想知道如何“动态”将成员添加到类中,并提出了以下示例:
using System; using System.Collections.Generic; using System.Dynamic; class Program { static void Main() { dynamic expando = new ExpandoObject(); var p = expando as IDictionary<String, object>; p["A"] = "New val 1"; p["B"] = "New val 2"; Console.WriteLine(expando.A); Console.WriteLine(expando.B); } }
此代码段的重点是成员A和B被定义为其中的字符串文字(硬编码/字符串化),并通过ExpandoObject的IDictionary接口添加。我们通过直接访问键并输出到控制台来测试键的存在和值(并证明其概念)。