XMLdocument.load(url)Internal从其他位置加载XML的作用

时间:2010-12-18 05:30:09

标签: c# asp.net xml

我想知道xmldocument内部使用什么来加载XML,它是httpwebsrequest还是其他任何内容。

我在这里读到了它,但没有关于内部的足够信息

http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.load.aspx

 XmlDocument doc = new XmlDocument();

 doc.Load("http://someotherserver/test.xml");   

任何人都可以告诉我这个。

1 个答案:

答案 0 :(得分:4)

我认为这是代码。

它位于XmlDownloadManager类中,它是内部的

private Stream GetNonFileStream(Uri uri, ICredentials credentials)
{
    WebRequest request = WebRequest.Create(uri);
    if (credentials != null)
    {
        request.Credentials = credentials;
    }
    WebResponse response = request.GetResponse();
    HttpWebRequest request2 = request as HttpWebRequest;
    if (request2 != null)
    {
        lock (this)
        {
            if (this.connections == null)
            {
                this.connections = new Hashtable();
            }
            OpenedHost host = (OpenedHost) this.connections[request2.Address.Host];
            if (host == null)
            {
                host = new OpenedHost();
            }
            if (host.nonCachedConnectionsCount < (request2.ServicePoint.ConnectionLimit - 1))
            {
                if (host.nonCachedConnectionsCount == 0)
                {
                    this.connections.Add(request2.Address.Host, host);
                }
                host.nonCachedConnectionsCount++;
                return new XmlRegisteredNonCachedStream(response.GetResponseStream(), this, request2.Address.Host);
            }
            return new XmlCachedStream(response.ResponseUri, response.GetResponseStream());
        }
    }
    return response.GetResponseStream();
}