1.原本无法序列化代码
public class PgToolGroup : IDisposable
{
public PgToolGroup(ProjectData project)
{
GroupName = project.GenDefaultName();
}
}
2.可以正常序列化代码
public class PgToolGroup : IDisposable
{
public PgToolGroup(ProjectData project)
{
GroupName = project.GenDefaultName();
}
public PgToolGroup()
{
}
}
3.封装的Json序列化函数
public T ReadJsonConfig<T>(string jsonPath)
{
StreamReader sr = File.OpenText(jsonPath);
string jsonWordTemplate = sr.ReadToEnd();
sr.Close();
return JsonConvert.DeserializeObject<T>(jsonWordTemplate);
}
public void WriteJsonConfig(object info, string jsonPath)
{
try
{
string objectsJsonStr = JsonConvert.SerializeObject(info);
File.WriteAllText(jsonPath, objectsJsonStr);
}
catch
{
Console.WriteLine("error");
}
}
public List<T> ReadJsonConfigList<T>(string jsonPath)
{
StreamReader sr2 = File.OpenText(jsonPath);
string jsonWordTemplate = sr2.ReadToEnd();
sr2.Close();
object o = JsonConvert.DeserializeObject(jsonWordTemplate, typeof(List<T>));
List<T> list = o as List<T>;
return list;
}
public void WriteJsonConfigList<T>(List<T> info, string jsonPath)
{
try
{
JsonSerializer serializer = new JsonSerializer();
StringWriter sw = new StringWriter();
serializer.Serialize(new JsonTextWriter(sw), info);
string result = sw.GetStringBuilder().ToString();
File.WriteAllText(jsonPath, result);
}
catch
{
Console.WriteLine("error");
}
}