将未知(在设计时)属性添加到ExpandoObject
只是探索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接口添加。我们通过直接访问键并输出到控制台来测试键的存在和值(并证明其概念)。
以上是 将未知(在设计时)属性添加到ExpandoObject 的全部内容, 来源链接: utcz.com/qa/408072.html