我有一个UserControl
,我在运行时从同一项目的主表单类创建的。
我需要发送我正在JSON文件中动态创建的UserControl
的所有信息(位置,名称,标签,文本...)。我正在使用JSON.NET库。
我正在执行以下操作,但不起作用:
UserControl1 UC = new UserControl1();
string outputJSON = JsonConvert.SerializeObject(UC);
File.WriteAllText("mifile.json", outputJSON);
答案 0 :(得分:0)
用户控件将包含一些包含您要公开的值的控件。
您可以通过创建要序列化的数据传输对象来执行此操作,然后使用控件中的数据填充此属性。
因此,在此示例中,为包含Person数据的控件创建一个DTO:
public class PersonDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
// ...
}
并通过方法或属性将其从用户控件中公开:
public PersonDto Data
{
get
{
return new PersonDto
{
FirstName = this.FirstNameTextBox.Text,
LastName = this.LastNameTextBox.Text,
// ...
}
}
}
然后您可以序列化该属性:
UserControl1 UC = new UserControl1();
// ...
string outputJSON = JsonConvert.SerializeObject(UC.Data);