App.configファイルに設定を書き込んで、dllから読み込んでください。実際には、あなたのdllがsettings/configのために探す唯一の場所だと思うが、dllのローカル設定は無視される。
ここでは、dllにアプリケーションへの強い参照がないことを確認するための簡単な例を示します。このコードは大したものではありませんが、あなたはそのアイディアを得ています。
private string GetSettingValue(string key)
{
string executingAssembly = Assembly.GetEntryAssembly().GetName().Name;
string sectionName = "applicationSettings/" + executingAssembly
+ ".Properties.Settings";
ClientSettingsSection section =
(ClientSettingsSection)ConfigurationManager.GetSection(sectionName);
// add null checking etc
SettingElement setting = section.Settings.Get(key);
return setting.Value.ValueXml.InnerText;
}
また共有の設定と共通dll
を持っていると設定を共有する必要がある各アセンブリから依存関係を取ります。これははるかにクリーンです。
しかし、設定1という名前の設定で、自分の.exeと.dllの両方にアクセスしたい場合は、どうすれば共通のエントリができますか?アプリケーションからのものはapplicationSettings/app_name.Properties.Settingsにあり、dllからのものはapplicationSettings/library.Properties.Settingsにあります。同じ値にアクセスするにはどうすればよいですか? –
コードサンプルを追加しました – TheCodeKing