Silverlight中调用ClientBin下非xap内的xml的方法

Silverlight中调用ClientBin下非xap内的xml的方法,第1张

概述前一阵子试着写个SilverLight应用,其中需要读取xml作为数据文件,但是由于xml里的数据随时都需要外部更改,于是乎不方便放在xap里,免得违背了"一次OX,处处运行"这种某伪OO语言所兴起的风潮,直接放在ClientBin下,于是开了各种尝试. 首先,很自然,看了msdn,直接选用XmlReader.Create(string uri)来创建reader,可惜...杯具,这里的uri是直

前一阵子试着写个Silverlight应用,其中需要读取xml作为数据文件,但是由于xml里的数据随时都需要外部更改,于是乎不方便放在xap里,免得违背了"一次OX,处处运行"这种某伪OO语言所兴起的风潮,直接放在ClIEntBin下,于是开了各种尝试.

首先,很自然,看了msdn,直接选用XmlReader.Create(string uri)来创建reader,可惜...杯具,这里的uri是直接指向xap下的.(M$,你敢给个XmlReader.Create(URI uri)的overload么)

说到URI,SL里如果相对地址为"Image/1.jpg",先查看是否在ClIEntBin/Image下有1.jpg.然后再在xap下找,而如果"~Image/1.jpg",那就直接找xap下是否有...

然后.各种找攻略,期间发现各种水文(国内各种论坛果然是鱼龙混杂,虽卧虎藏龙,但是还是有神一般存在的家伙的-_-,ps:咱是水货),包括使用Xmldocument的杯具男,我说你们写上去之前能跑一下代码,或者好好看以下msdn吗,上面清楚写着,Xmldocument不可用阿....

好吧,Silverlight对WPF的瘦身不是一点,茫茫多的功能被阉割掉了,原本很强大的xml支持,现在只剩那么几个鸡肋一般的了.害咱解析的类写了好久T_T

SL酱小一点真的好么?一只手握住刚好,还是贫R是稀缺资源呢?M$不能这么邪恶啊...

进入正题...水了好久啊...

这边提供这么个类 XMLParse:

from http://forums.silverlight.net/forums/t/99312.aspx

public class XMLParser
{
    public delegate voID EventHandler(object sender,XmlParserEventArgs e);
    public event EventHandler Completed;

    public voID LoadXML@R_502_6852@(string xmlURI)
    {
        WebClIEnt xmlClIEnt = new WebClIEnt();
        xmlClIEnt.DownloadStringCompleted += new DownloadStringCompletedEventHandler(XML@R_502_6852@Loaded);
        xmlClIEnt.DownloadStringAsync(new Uri(xmlURI,UriKind.relativeOrabsolute));
    }

    voID XML@R_502_6852@Loaded(object sender,DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            string xmlData = e.Result;

            if (Completed != null)
            {
                Completed(this,new XmlParserEventArgs(xmlData));
            }
        }
    }
}

public class XmlParserEventArgs : EventArgs
{
    public string XmlString { get; set; }

    public XmlParserEventArgs(string xmlString)
    {
        this.XmlString = xmlString;
    }
}
用WebClIEnt+异步传输,貌似可以获取其它网站的数据,很不错的方法.虽然还有修改的方法,嘛,有空再看了.使用范式就在那个link里找吧...

=========================人,人家才不是什么分割线呢=============================

【reprinted from http://hi.baidu.com/avalontm/blog/item/bae82d3cbbe006cd9e3d6279.html】

总结

以上是内存溢出为你收集整理的Silverlight中调用ClientBin下非xap内的xml的方法全部内容,希望文章能够帮你解决Silverlight中调用ClientBin下非xap内的xml的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1044519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存