2010-12-18 72 views
0

我想知道内部使用何种调用xmldocument来加载XML,它是否会产生httpwebsrequest或其他任何内容。XMLdocument.load(url)内部是否会从其他位置加载XML

我读到这里,但对内部

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

XmlDocument doc = new XmlDocument(); 

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

谁能告诉我这个没有足够的信息。

+0

您可以使用.NET反射看到自己http://www.red-gate.com/products/dotnet-development/reflector/ – Vadim 2010-12-18 05:34:24

+0

@我必须下载这个,它不允许在我的办公室笔记本电脑上使用,你能告诉我,如果你知道的话 – kobe 2010-12-18 05:37:19

回答

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(); 
} 
+0

谢谢,让我通过代码 – kobe 2010-12-18 05:48:22