如何使收藏快速搜索
本文关键字:搜索 收藏 何使 | 更新日期: 2023-09-27 18:24:07
EDIT:我重新表述了这个问题,并在这篇文章中得到了解决:如何在ConfigurationSection类型的集合中搜索?
原始问题:
我正在我的网络配置中存储一个配置选项列表。我可能最终会在这里有50或100件物品。
我正在使用这里描述的方法:
http://net.tutsplus.com/tutorials/asp-net/how-to-add-custom-configuration-settings-for-your-asp-net-application/
好消息:
它有效,我有一个_Config集合,它包含所有
问题是:如何查询_Config以获取特定提要?(随着时间的推移,我会有50-100个,也许更多……总有一天,它会转移到数据库,但不是现在,因为它托管在azure上,我现在需要避免azure的持久性。)
(既然这会执行很多,也许它应该是哈希表或字典?但我不知道如何创建它们…)
我一直在挣扎,无法将_Config强制转换为列表或我可以查询的内容
问题是:如何将_Config(从上面的链接)转换为可以查询特定提要的内容
最终目标是拥有一个被调用来处理特定提要的函数,因此它只需要该提要记录中的配置信息。在伪代码中,目标类似于:
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")
您可以创建一个具有私有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];
}
}