こんにちは、このようなファクトリコードがあります。辞書に直接保存する代わりに、これらの値をapp.configファイルに保存したいと思います。私が以下に示したように。
public class HandlerFactory
{
private Dictionary<string, IHandler> _handlers = new Dictionary<string,IHandler>();
public HandlerFactory()
{
_handlers.Add("AMOUNT", new AmountValidator());
_handlers.Add("FLOW", new FlowValidator());
}
public IHandler Create(string key)
{
IHandler result;
_handlers.TryGetValue(key, out result);
return result;
}
}
以下に示すように、これらの設定を構成ファイルに移動します。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="Indentifiers" type="System.Configuration.AppSettingsSection"/>
</configSections>
<Indentifiers>
<add key="AMOUNT" value="AmountValidator" />
<add key="FLOW" value="FlowValidator" />
</Indentifiers>
</configuration>
私はこのようなことをしていましたが、成功しませんでした。辞書に追加する方法がわからない
NameValueCollection settings = ConfigurationManager.GetSection("Indentifiers") as NameValueCollection;
if (settings != null)
{
foreach (string key in settings.AllKeys)
{
_handlers.Add(key.ToString(), settings[key].ToString()); <-- how to handle here
}
}