创建缓存并根据输入参数返回单个值!

时间:2009-09-28 17:52:55

标签: c# xml

我需要使用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>

1 个答案:

答案 0 :(得分:0)

为什么不直接阅读整个XML文件并将其添加到字典中?您可以将整个字典粘贴到缓存中并将其保留在那里。