GetプロパティをJSON形式で保存してみる
FLVからMP3をブッコ抜くアプリを作っていたら、設定の保存をJSONでやろうと思いついた。そしたら、いつの間にか読み込み処理に力を入れている自分がいた。
以下のC#のプログラムは、saveメソッド実行で、クラスからGetプロパティ(以下の場合は、parameterFileNameとversion)を検索して、そのプロパティ名と値を取得する。それをJSON形式で出力するですよ。
public class classParameter
{
public string parameterFileName
{
get { return "sachimitama.ini"; }
}
public string version
{
get { return "00-00-000"; }
}
public void save(string file)
{
bool isFirst = true;
FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
Type t = typeof(classParameter);
PropertyInfo[] members = t.GetProperties();
sw.Write("{");
foreach (MemberInfo m in members)
{
if (!isFirst)
{
sw.WriteLine(",");
}
else
{
isFirst = false;
}
sw.Write("\"" + m.Name + "\":\"" + (string)t.InvokeMember(m.Name, BindingFlags.GetProperty, null, this, null).ToString() + "\"");
}
sw.WriteLine("}");
sw.Close();
fs.Close();
}
}
結果は以下のようになるはず。(上記のプログラムでは動かしていません。抜き出す前のプログラムでは一応動作しているのは確認しています)
{"parameterFileName":"sachimitama.ini","version":"00-00-000"}
« 読了:召喚士マリア 6 堕天使に安らぎを、真の名に微笑みを。 | トップページ | 今日はネタを切らしてまして・・・ »
« 読了:召喚士マリア 6 堕天使に安らぎを、真の名に微笑みを。 | トップページ | 今日はネタを切らしてまして・・・ »
コメント