- PR -

アプリ名.exe.configに書き込み

1
投稿者投稿内容
sugimoto
常連さん
会議室デビュー日: 2002/12/05
投稿数: 45
投稿日時: 2002-12-05 20:04
はじめまして。sugiと申します。

アプリ名.exe.configファイルの読み込み方は分かるのですが、
プログラム中(C#)から書き込む方法が分かりません。

もしかして、読み込みのときのように専用クラスはなく、
普通にDOMなどで書き込むということなのでしょうか?
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2002-12-06 16:09
VB.NETでの記述例になりますが、以下の情報がMSのサイトにあがってますね。
http://www.microsoft.com/japan/msdn/vs/vb/vbtchCreateYourOwnDynamicPropertiesPreservePropertySettingsInVisualBasicNET.asp

まぁ、DOMでやるようになるということのようです。
sugimoto
常連さん
会議室デビュー日: 2002/12/05
投稿数: 45
投稿日時: 2002-12-06 16:54
shu様、ご返答ありがとうございます。

MSのサイトですが、ずばりな内容でした。
やはり、DOMだったのですね。

動的プロパティとして公開されていないプロパティの
保存の仕方など、とても参考になりました。

ありがとうございました。
sugimoto
常連さん
会議室デビュー日: 2002/12/05
投稿数: 45
投稿日時: 2002-12-07 01:18
早速 アプリ名.exe.config ファイルを書き込むサンプルを
作ってみましたので、参考までに載せておきます。

例外処理などは、まだ追加しておりません。
C# のコメントってこれでいいのかな?


using System;
using System.Xml;

namespace com.kamedane.xml
{
/// <summary>
/// アプリ名.exe.config 書き込みクラス
/// </summary>
public class ConfigXML
{
private XmlDocument xmlDoc = new XmlDocument();
private String fileName;

/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="app">アプリ名称</param>
public ConfigXML(String app)
{
fileName = app + ".exe.config";
xmlDoc.Load(fileName);
}

/// <summary>
/// config ファイルに書き込みます
/// </summary>
/// <param name="cfgKey">キー名称</param>
/// <param name="cfgValue">セットする値</param>
public void SetConfig(String cfgKey,String cfgValue)
{
foreach(XmlNode node in xmlDoc.SelectSingleNode("/configuration/appSettings"))
{
if(node.Name.Equals("add"))
{
if((node.Attributes.GetNamedItem("key").Value).Equals(cfgKey))
{
node.Attributes.GetNamedItem("value").Value = cfgValue;
}
}
}
xmlDoc.Save(fileName);
}
}
}
sugimoto
常連さん
会議室デビュー日: 2002/12/05
投稿数: 45
投稿日時: 2002-12-07 01:40
すいません。ちょっと訂正です。

SetConfigメソッド中の
xmlDoc.Save(fileName);
ですが、

別メソッドにするべきでした。

/// <summary>
/// config ファイルの保存
/// </summary>
public void Save()
{
xmlDoc.Save(fileName);
}


読み込みようにも下のようにメソッドを用意しておくと、
便利なのかな??


/// <summary>
/// config ファイルを読み込みます
/// </summary>
/// <param name="cfgKey">キー名称</param>
/// <returns>読み込んだ値</returns>
public static String GetConfig(String cfgKey)
{
System.Configuration.AppSettingsReader configurationAppSettings = new System.Configuration.AppSettingsReader();
return (string)(configurationAppSettings.GetValue(cfgKey, typeof(string)));
}


でも、毎回 AppSettingsReader のインスタンスを作るのも・・・ですね。

[ メッセージ編集済み 編集者: sugi 編集日時 2002-12-07 01:47 ]
1

スキルアップ/キャリアアップ(JOB@IT)