繁体   English   中英

Xdocument.load()不会刷新xml文件更新

[英]Xdocument.load( ) does not refreshes with xml file update

我正在尝试构建一个小型桌面记分牌,可以获得并显示C#中的实时匹配分数。 现在,当我在按钮点击时调用Xdocument.load(url)方法时,它仅首次加载最新分数,然后保持显示相同的分数,即使Xdocument.load()定义为在按钮单击时运行(以及何时运行)表单加载,但我不认为这会产生影响)。 现在我在google和stackoverflow上找到的东西就像是看文件何时更新以及相关内容。 但所有这些都是针对本地xml文件的。 我该如何解决我的问题?

     public Form1()
    {
        InitializeComponent();
       // WebRequest.DefaultCachePolicy = new RequestCachePolicy(RequestCacheLevel.Revalidate);   
        feed = XDocument.Load(url);


    }

    private void button1_Click(object sender, EventArgs e)
    {
        feed = XDocument.Load(url + "?_=" + Guid.NewGuid().ToString());
         feed=XDocument.Load(url);
       // var nofmlive = feed.Root.Element("match").Attribute("srs");
        var output = GetItems();
        foreach (var v in output) {
       //rest of the code,,just to get and show data of all matches which are currently live

也许XDocument正在缓存数据。 尝试通过附加Guid查询字符串参数参数来破坏缓存:

var doc = XDocument.Load(url + "?_=" + Guid.NewGuid().ToString());

调整? 使用&如果您已在网址中包含查询字符串参数。

您也可以尝试更改缓存策略,但这种方法的缺点是它对所有HTTP请求都是全局的:

WebRequest.DefaultCachePolicy = new RequestCachePolicy(RequestCacheLevel.Revalidate);
var doc = XDocument.Load(url);

或者,您可以尝试使用WebClient加载XML,然后将其提供给XDocument:

using (var client = new WebClient())
{
    string xml = client.DownloadString("http://synd.cricbuzz.com/j2me/1.0/livematches.xml?_=" + Guid.NewGuid().ToString());
    var doc = XDocument.Parse(xml);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM