我需要使用XML文件创建缓存。这是我将使用的方法的签名。我希望此方法基于key-product_name返回id。所以我希望它以编程方式一次创建一个缓存,然后只有在找不到密钥时才添加它。
public static string getProductId(string product_name)
public static string getTechId(string fieldName)
{
Cache cache = HttpContext.Current.Cache; //neeed to change this.
string cacheNameEpm = product_name + "TechName";
if (cache[cacheNameEpm] == null)
{
XPathDocument doc = new XPathDocument(HttpContext.Current.Request.MapPath("inc/xml/prd.xml"));
XPathNavigator navigator = doc.CreateNavigator();
string selectName = "/Products/Product[ProductName ='" + fieldName + "']/ProductId";
XPathNodeIterator nodes = navigator.Select(selectName);
if (nodes.Count > 0)
{
nodes.MoveNext();
cache.Add(cacheNameEpm, nodes.Current.Value, null, DateTime.Now + new TimeSpan(4, 0, 0), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Default, null);
}
}
return cache[cacheNameEpm] as string;
}
这是xml文件:
<Products>
<Product>
<ProductName>PDPArch</ProductName>
<ProductId>57947</ProductId>
</Product>
<Product>
<ProductName>TYFTType</ProductName>
<ProductId>94384</ProductId>
</Product>
</Products>
答案 0 :(得分:0)
为什么不直接阅读整个XML文件并将其添加到字典中?您可以将整个字典粘贴到缓存中并将其保留在那里。