inohilog

/var/log/inohiro.log

hoge.exe.config ファイルから設定を読み込む

Web.config ファイルは既におなじみなんですが、「hoge.exe.config」ファイルも簡単に使えますよ、ということらしい。恥ずかしながら初めて使った。某拠点間監視ソフトもこれで設定ファイルやれば良かったのではないか。

コード(Program.cs → ConfigurationManager.exe)

using System;

using System.Collections.Specialized;

namespace ConfigurationManager
{
	class Program
	{
		static NameValueCollection AppSettings
		{
			get
			{
				return System.Configuration.ConfigurationManager.AppSettings;
			}
		}

		static void Main( string[] args )
		{
			string hello = AppSettings["hello"];
			string world = AppSettings["world"];
			if( !String.IsNullOrEmpty( hello ) | !String.IsNullOrEmpty( world ) )
//			if( !( String.IsNullOrEmpty( hello ) ) && !( String.IsNullOrEmpty( world ) ) )
				Console.WriteLine( "{0}, {1}", hello, world );
			else
				Console.WriteLine( "Can not find configuration. \nPress any key..." );
			Console.ReadKey();
		}
	}
}

設定ファイル(ConfigurationManager.exe.config)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<appSettings>
		<add key="hello" value="Hello"/>
		<add key="world" value="World"/>
	</appSettings>
</configuration>

実行結果

Hello, World

まとめ

簡単。
このコードだと「AppSettings」と見に行くときにいちいちプロパティを見に行ってるので、NameValueCollection型のオブジェクトにAppSettingsと名付けた方が早くなるのではないか。いや、タイプ量が増えるけどConfiguratioManager.AppSettingsといちいち書いた方が早いのか。VSだし。
そもそも速度を気にするなら.NETで書くなと友達に言われそうですが。
コード読むの勉強になるなぁ。