「C Sharp/DLLのApp.config」の版間の差分
< C Sharp
ナビゲーションに移動
検索に移動
(ページの作成:「.NET FrameworkのDLL(ライブラリ)でApp.config(アプリケーション構成ファイル)を使う方法を記述する。 == ライ...」) |
|||
1行目: | 1行目: | ||
[[.NET Framework]]の[[DLL]]([[ライブラリ]])で[[App.config]]([[アプリケーション構成ファイル]])を使う方法を記述する。 | [[.NET Framework]]の[[DLL]]([[ライブラリ]])で[[App.config]]([[アプリケーション構成ファイル]])を使う方法を記述する。 | ||
− | == ライブラリプロジェクト内にApp.configファイルを作る == | + | == 手順 == |
+ | もっといい方法があると思うが、知っている人がいたら教えて欲しい。 | ||
+ | |||
+ | === ライブラリプロジェクト内にApp.configファイルを作る === | ||
# ライブラリプロジェクトに[[App.config]]([[アプリケーション構成ファイル]])を追加する。 | # ライブラリプロジェクトに[[App.config]]([[アプリケーション構成ファイル]])を追加する。 | ||
# ファイル名を「DLL名」+「.config」に変更する。 | # ファイル名を「DLL名」+「.config」に変更する。 | ||
10行目: | 13行目: | ||
なお、app.configの中身の書き方は同じ。 | なお、app.configの中身の書き方は同じ。 | ||
− | == .dll.configファイルを読み込むクラスを作る == | + | === .dll.configファイルを読み込むクラスを作る === |
[[C Sharp|C#]]での記述例。 | [[C Sharp|C#]]での記述例。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
39行目: | 42行目: | ||
</source> | </source> | ||
− | == 使ってみる == | + | === 使ってみる === |
以下の設定ファイルはライブラリプロジェクトにあるものとする。 | 以下の設定ファイルはライブラリプロジェクトにあるものとする。 | ||
<source lang="xml"> | <source lang="xml"> |
2012年8月3日 (金) 13:50時点における版
.NET FrameworkのDLL(ライブラリ)でApp.config(アプリケーション構成ファイル)を使う方法を記述する。
目次
手順
もっといい方法があると思うが、知っている人がいたら教えて欲しい。
ライブラリプロジェクト内にApp.configファイルを作る
- ライブラリプロジェクトにApp.config(アプリケーション構成ファイル)を追加する。
- ファイル名を「DLL名」+「.config」に変更する。
- たとえば「monobooklib.dll」であれば「monobooklib.dll.config」とする。
- Visual Studioでファイルのプロパティを開き、「出力ディレクトリにコピー」の値を「常にコピーする」に設定する。
なお、app.configの中身の書き方は同じ。
.dll.configファイルを読み込むクラスを作る
C#での記述例。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
public static class ConfigUtil
{
public static System.Configuration.Configuration GetConfig(Type type)
{
string dll_config_path = type.Assembly.Location + ".config";
if (!File.Exists(dll_config_path))
{
return null;
}
var file_map = new ExeConfigurationFileMap();
file_map.ExeConfigFilename = dll_config_path;
System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(file_map, ConfigurationUserLevel.None);
return config;
}
}
使ってみる
以下の設定ファイルはライブラリプロジェクトにあるものとする。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="hello" value="monobook" />
</appSettings>
</configuration>
以下のコードはライブラリプロジェクトにあるものとする。
public class TestClass
{
public string Name { get; set; }
public TestClass()
{
var config = ConfigUtil.GetConfig(this.GetType());
var setting = config.AppSettings.Settings["hello"];
if (setting != null)
{
this.Name = setting.Value;
}
}
}
以下のコードはライブラリプロジェクトとは別にあるものとする。
using System;
class Program
{
static void Main(string[] args)
{
var test = new TestClass();
Console.WriteLine(test.Name);
}
}