クラスを使用してクラスをシリアル化/逆シリアル化しJson.Net
、ファイルとの間でクラスを保存/ロードする2つのメソッドを作成しようとしています。これが私のコードです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Newtonsoft.Json;
using System.Security.Cryptography;
using System.Text.RegularExpressions;
namespace System
{
public static class SystemExtentions
{
public static void SaveToFile(this object data, string FileName)
{
using (StreamWriter writer = new StreamWriter(FileName))
{
string s = JsonConvert.SerializeObject(data);
writer.Write(s);
writer.Close();
}
}
public static void LoadFromFile<t>(t date,string FileName)
{
using (StreamReader reader = new StreamReader(FileName))
{
data = JsonConvert.DeserializeObject<t>(reader.ReadToEnd());
reader.Close();
}
}
}
}
しかし、LoadFromFile
メソッドでdata = JsonConvert.DeserializeObject<t>(reader.ReadToEnd());
は機能しません!これは、私がこのコードを持っていた場合、次のことを意味します。
Class1 c1=new Class1();
c1.LoadFromFile<Class1>("c1.clf");
コードの実行後、のプロパティはc1
変更されません。
理由を知りたいのですが、クラスを変更したり、そのプロパティLoadFromFile
を独立した(クラスのタイプとプロパティに依存しない)(動的に)方法で設定(逆シリアル化!)するための解決策はありますか?