[英]C# Nested Reflection SetValue with IDictionary
如何设置嵌套对象的值? 这是我的课程:
public class MyPage<MyData> {
public MyData Content {get;set;}
}
public class MyData {
public IDictionary<string, string> Text { get;set; }
}
我有一个表示为字符串的表达式,如下所示
var expressionString = "Content[\"Main\"]";
设定值
var value = "hello world!";
设定对象
var page = new MyPage<MyData>();
请注意,“内容”为空,“文本”为空。 我想创建while设置Text [“ Main”] =“ hello world!”;
谢谢。
您的代码可以正常工作,您必须初始化所有内容才能正常工作。 要使用这些类,您需要执行以下操作:
MyPage<MyData> myPage = new MyPage<MyData>();
myPage.Content = new MyData();
myPage.Content.Text = new Dictionary<string, string>();
myPage.Content.Text["foo"] = "bar";
myPage.Content.Text["fizz"] = "buzz";
foreach (var item in myPage.Content.Text)
{
Console.WriteLine(item.Key + item.Value);
}
您可能想要做的是更改您的班级以执行以下操作。 这样,当您创建MyPage类时,所有对象都已初始化。 另外,由于您将MyPage限制为仅限于此,因此我认为无需添加到MyPage。
public class MyPage
{
public MyPage()
{
Content = new MyData();
}
public MyData Content { get; set; }
}
public class MyData
{
public MyData()
{
Text = new Dictionary<string, string>();
}
public IDictionary<string, string> Text { get; private set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.