- INIファイルを使用する
- レジストリに書き込む
- XMLファイルを使用する
- Configファイルを使用する
- Settingsファイルを使用する
いろいろありますが、 .NETの推奨は「XMLファイル」の使用です。
そのXMLファイルを使ってアプリケーションの設定を保存する方法をまとめます。
以下のエントリで作ったプログラムに、ユーザIDやアクセストークンなどをXMLファイルに
保存する機能を追加する形でまとめます。
0.XMLファイルに保存するためのクラス作成
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TwitterClient
{
public class TwitSettings
{
#region メンバ変数
private string _userID;
private string _screenName;
private string _requestToken;
private string _requestSecretToken;
private string _accessToken;
private string _accessSecretToken;
#endregion
#region プロパティ
public string UserID
{
get { return _userID; }
set { _userID = value; }
}
public string ScreenName
{
get { return _screenName; }
set { _screenName = value; }
}
// リクエストトークンはXMLに書き込まない
[System.Xml.Serialization.XmlIgnoreAttribute]
public string RequestToken
{
get { return _requestToken; }
set { _requestToken = value; }
}
// リクエストシークレットはXMLに書き込まない
[System.Xml.Serialization.XmlIgnoreAttribute]
public string RequestSecretToken
{
get { return _requestSecretToken; }
set { _requestSecretToken = value; }
}
public string AccessToken
{
get { return _accessToken; }
set { _accessToken = value; }
}
public string AccessSecretToken
{
get { return _accessSecretToken; }
set { _accessSecretToken = value; }
}
#endregion
}
}
XMLに保存したくない項目
プロパティの上に
[System.Xml.Serialization.XmlIgnoreAttribute]
って書くと保存されません。クライアントに保存すると不都合があるものなどを指定します。
今回は、リクエストトークンとリクエストシークレットを保存しないようにしました。
1.XMLに保存
// いろいろ格納
TwitSettings settings = new TwitSettings();
settings.UserID = userId;
settings.ScreenName = screenName;
settings.RequestToken = requestToken;
settings.RequestSecretToken = requestSecret;
settings.AccessToken = accessToken;
settings.AccessSecretToken = accessSecret;
//---------------------------
// 1.XMLファイルに保存
//---------------------------
// XmlSerializerを使ってファイルに保存(TwitSettingオブジェクトの内容を書き込む)
XmlSerializer serializer = new XmlSerializer(typeof(TwitSettings));
// カレントディレクトリに"settings.xml"というファイルで書き出す
FileStream fs = new FileStream(Directory.GetCurrentDirectory() + "\\" + "settings.xml", FileMode.Create);
// オブジェクトをシリアル化してXMLファイルに書き込む
serializer.Serialize(fs, settings);
fs.Close();
2.XMLから読み込み
//---------------------------
// 2.XMLファイルを読み込む
//---------------------------
// XMLをTwitSettingsオブジェクトに読み込む
TwitSettings settings = new TwitSettings();
fs = new FileStream(Directory.GetCurrentDirectory() + "\\" + "settings.xml", FileMode.Open);
// XMLファイルを読み込み、逆シリアル化(復元)する
settings = (TwitSettings)serializer.Deserialize(fs);
fs.Close();
//---------------------------
// 3.読み込んだデータを出力
//---------------------------
Console.WriteLine("### XMLファイルから読み込み ###");
Console.WriteLine("UserId : " + settings.UserID);
Console.WriteLine("ScreenName : " + settings.ScreenName);
Console.WriteLine("AccessToken : " + settings.AccessToken);
Console.WriteLine("AccessSecretToken: " + settings.AccessSecretToken);
XMLの中身
本当に簡単にXMLに保存、XMLから読み込みができました。
実装したときは本当に感動でした!
ちなみに出力されたXMLファイルは以下のようなものです。
<?xml version="1.0"?>
<TwitSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<UserID>77967886</UserID>
<ScreenName>bc_rikko</ScreenName>
<AccessToken>AAAAAAAA</AccessToken>
<AccessSecretToken>BBBBBBBB</AccessSecretToken>
</TwitSettings>
以上
0 件のコメント :
コメントを投稿