Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带IDictionary的C#嵌套反射集值_C#_Reflection - Fatal编程技术网

带IDictionary的C#嵌套反射集值

带IDictionary的C#嵌套反射集值,c#,reflection,C#,Reflection,如何设置嵌套对象的值?以下是我的课程: public class MyPage<MyData> { public MyData Content {get;set;} } public class MyData { public IDictionary<string, string> Text { get;set; } } 要设置的值 var value = "hello world!"; 要设置的对象 var page = new MyPage&

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

public class MyPage<MyData> { 
    public MyData Content {get;set;}
}

public class MyData { 
    public IDictionary<string, string> Text { get;set; }
}
要设置的值

var value = "hello world!";
要设置的对象

var page = new MyPage<MyData>();
var page=new MyPage();
请注意,内容为空,文本为空。我想在设置文本[“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=new MyPage();
myPage.Content=newmydata();
myPage.Content.Text=新字典();
myPage.Content.Text[“foo”]=“bar”;
myPage.Content.Text[“fizz”]=“buzz”;
foreach(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; }
}
公共类MyPage
{
公共MyPage()
{
内容=新的MyData();
}
公共MyData内容{get;set;}
}
公共类MyData
{
公共MyData()
{
Text=新字典();
}
公共IDictionary文本{get;private set;}
}

请显示您当前的代码,并告诉我们哪些代码无法使用。
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; }
}