以下のように、コントロール情報を XML ファイルに保存していました。
<Controls>
<Label Id="heading" Text="This is a heading!" FontStyle="(FontStyleDataHere)" Location="20, 10" />
<Label Id="bodyText" Text="This is Body text." FontStyle="(FontStyleDataHere)" Location="20, 70" />
</Controls>
昨年持っていたコードの多くのページの印刷版を探していましたが、それが唯一のバックアップであり、今は見つかりません。
どうやってこれをやったのか覚えていないので、XML は信じられないほど退屈だといつも感じていました。そこで、JSON を試してみませんか。だいぶ楽になったような…
上記のコードを考えると、Person 型のクラスを作成し、オブジェクトをシリアライズしてファイル (またはコンソールなど) に書き込むことができました。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Threading.Tasks;
namespace SerializeToJson
{
class Program
{
[DataContract]
internal class Person
{
[DataMember]
internal String Name;
[DataMember]
internal Int32 Age;
}
static void Main(string[] args)
{
Person person = new Person()
{
Name = "Jason rules.",
Age = 19
};
MemoryStream stream = new MemoryStream();
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
serializer.WriteObject(stream, person);
stream.Position = 0;
StreamReader reader = new StreamReader(stream);
Console.Write("Json form of Person object: ");
Console.WriteLine(reader.ReadToEnd());
Console.ReadKey();
}
}
}
しかし、問題は、コントロールを Json にシリアル化する方法がわからないことです。そして、これは私が本当に必要としているものです。そして、明らかに、実行時に再作成できるように、後でシリアル化解除する必要があります。
JSON を使用してこれを行うことはできますか、それとも XML を引き続き使用することをお勧めしますか?