编辑:我改写了这个问题,并在这篇文章中解决了这个问题:How do I search within a collection of type ConfigurationSection?
原始问题:
我在我的网络配置中存储了配置选项列表。我最终可能会有50或100件物品。
我正在使用此处描述的方法:
好消息:
它有效,我有一个包含所有
的_Config集合问题:如何查询特定Feed的_Config? (随着时间的推移,我会有50-100,也许更多......有一天,这将转移到数据库,但现在不会,因为它托管在azure上,我现在需要避免使用azure持久性。)
(因为这会执行很多,也许它应该是哈希表或字典?但我不知道如何创建em ...)
我一直在努力,并且无法将_Config转换为列表或我可以查询的内容。
问题是:如何将_Config(从上面的链接)变成我可以查询特定Feed的内容?
最终目标是让一个func被调用以使用特定的feed,因此它需要来自该feed记录的配置信息。在伪代码中,目标是:
getFeed(feedname)
if (_Config.name == feedname) // e.g. feedname is one of the "name" elements in the web.config
// do the stuff
GetData(_Config.feedname.url)
else
// requested feed is not in our config
// tell use can't do it
或者,(也是伪代码)
getFeed(feedname)
try
thisPassFeed = _Config.feedname;
string url = thisPassFeed.url;
// do the stuff
GetData(url);
catch
// requested feed is not in our config
// tell use can't do it
return("can't find that feedname in web.config")
答案 0 :(得分:0)
您可以创建一个具有私有Dictionary成员的静态类。在静态构造函数中访问_Config并执行
public static class Feeds
{
private static readonly Dictionary<string, FeedElement> feeds;
static Feeds()
{
feeds = new Dictionary<string, FeedElement>();
var config = ConfigurationManager.GetSection("feedRetriever") as FeedRetrieverSection;
foreach (FeedElement feed in config.Feeds)
{
feeds.Add(feed.Name, feed);
}
}
static public FeedElement GetFeed(string name)
{
return feeds[name];
}
}