只是探索 c# 4。尝试让我的头脑了解所有这些动态的东西。抱歉,如果这个问题很愚蠢,我没有这个领域的经验。
如果我有一个 ExpandoObject 并且想要在运行时向其添加公共属性(使用 get 和 set),我将如何去做呢?
例如,我有一个 documentTemplate 和一个文档,其中有一个指向 documentTemplate 的属性。该文档模板有一些标签标题(例如学生发展的能力),在制作文档时应解决这些标签标题(例如浓度、记忆力等)。因此,一旦在文档中设置了模板,我想创建一个类,该类具有与模板中的标签标题同名的属性,然后使用一些 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 接口添加。我们通过直接访问键并输出到控制台来测试键的存在和值(并证明这个概念)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)