0

如何设置嵌套对象的值?这是我的课程:

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>();

请注意,内容为空,文本为空。我想创建同时设置 Text["Main"] = "hello world!";

谢谢。

4

1 回答 1

0

您的代码可以工作,您必须初始化所有内容才能使其工作。要使用这些类,您需要执行以下操作:

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,因为无论如何您都将其限制在其中。

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; }
}
于 2013-04-09T13:19:52.610 回答