私はデータテーブルのいくつかの列に新しい行を作成するときに、このデフォルト値をユーザーが変更するまで配置する必要があります。 JSONを使用して、セーブ/ロード用のデータテーブルをシリアライズしてデシリアライズしました。 JSONを使用したシリアル化/逆シリアル化では、データテーブル内の以前のデータは正常に読み込まれますが、デフォルト値は戻されず、新しい行の作成には使用されません。 JSONにdatatableのデフォルト値をシリアライズ/デシリアライズさせる方法はありますか?ありがとう。 サンプルコードは以下の通りです:JSONはデータテーブルのデフォルト値をシリアル化/逆シリアル化できません
あなたがシリアライズnamespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable("ff");
DataColumn col1 = new DataColumn();
col1.ColumnName = "dd";
col1.DataType = typeof(bool);
col1.DefaultValue = true;
dt.Columns.Add(col1);
Console.WriteLine("Before Serialization");
Console.WriteLine(dt.NewRow()["dd"].ToString());//brings True
string serializedStr = Newtonsoft.Json.JsonConvert.SerializeObject(dt, serializationetting);
DataTable deserializedDt = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(serializedStr, serializationetting) as DataTable;
deserializedDt.Rows.Add(deserializedDt.NewRow());
Console.WriteLine("After Serialization");
Console.WriteLine(deserializedDt.NewRow()["dd"]);//brings empty
Console.ReadLine();
}
public static JsonSerializerSettings serializationetting = new JsonSerializerSettings()
{
TypeNameAssemblyFormat = FormatterAssemblyStyle.Full,
TypeNameHandling = TypeNameHandling.Objects,
Formatting = Formatting.Indented,
};
}
}
コードを表示します。 –
私はコードを追加しました。 – all