有没有一种方法可以在 void Load() 中加载对象数据而无需单独分配每个 属性 (C#)?
Is there a way to load object data in void Load() without assigning each property separately (C#)?
我正在开发一个小型 WPF 应用程序来帮助我组织文件。 class 我将大部分数据存储在项目中,它包含应用程序使用的大部分数据。因此,它有很多我需要从文件中保存和加载的属性(大约20个,以几个为例)
public DateTime Start { get; set; }
public DateTime End { get; set; }
public Int32 Count { get; set; }
public String Name { get; set; }
public HashSet<String> Files { get; set; }
据我所知,加载对象主要有两种方式:
我。
Project.cs
public Project Load( String file ) {
Project project = json( file ); //to shorten the question
return project;
}
主窗口
Project project = new Project();
project = project.Load( file );
二.
Project.cs
public void Load( String file ) {
Project project = json( file );
Start = project.Start;
End = project.End;
Count = project.Count;
Name = project.Name;
Files = project.Files;
}
主窗口
Project project = new Project();
project.Load( file );
我能否仍然使用 void Load()
函数,但一次分配整个对象?
我尝试使用 this = project;
,但它是只读的。
Json .net 有一个 method,
使用反射的快速而肮脏的方法
var project = Json(file); //to shorten the question
foreach (var prop in this.GetType().GetProperties())
{
prop.SetValue(this, prop.GetValue(project));
}
return project;
使用编译的更高效的方法这个更高级。
但是在使用 wpf 时这看起来有点不对劲,你应该使用一些 MVVM 模式,并且项目应该是你的视图的绑定上下文,你可以从 json 设置创建的对象而不复制对象.
我正在开发一个小型 WPF 应用程序来帮助我组织文件。 class 我将大部分数据存储在项目中,它包含应用程序使用的大部分数据。因此,它有很多我需要从文件中保存和加载的属性(大约20个,以几个为例)
public DateTime Start { get; set; }
public DateTime End { get; set; }
public Int32 Count { get; set; }
public String Name { get; set; }
public HashSet<String> Files { get; set; }
据我所知,加载对象主要有两种方式:
我。
Project.cs
public Project Load( String file ) {
Project project = json( file ); //to shorten the question
return project;
}
主窗口
Project project = new Project();
project = project.Load( file );
二.
Project.cs
public void Load( String file ) {
Project project = json( file );
Start = project.Start;
End = project.End;
Count = project.Count;
Name = project.Name;
Files = project.Files;
}
主窗口
Project project = new Project();
project.Load( file );
我能否仍然使用 void Load()
函数,但一次分配整个对象?
我尝试使用 this = project;
,但它是只读的。
Json .net 有一个 method,
使用反射的快速而肮脏的方法
var project = Json(file); //to shorten the question
foreach (var prop in this.GetType().GetProperties())
{
prop.SetValue(this, prop.GetValue(project));
}
return project;
使用编译的更高效的方法这个更高级。 但是在使用 wpf 时这看起来有点不对劲,你应该使用一些 MVVM 模式,并且项目应该是你的视图的绑定上下文,你可以从 json 设置创建的对象而不复制对象.