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

Content が null で Text が null であることに注意してください。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 に答える