XObject.BaseUri 属性  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取此 XObject 的基 URI。
public:
 property System::String ^ BaseUri { System::String ^ get(); };public string BaseUri { get; }member this.BaseUri : stringPublic ReadOnly Property BaseUri As String属性值
一个 String,其中包含此 XObject 的基 URI。
示例
以下示例加载文件时加载基本 URI 和行信息。 然后,它会打印基本 URI 和行信息。
本示例使用下面的 XML 文档:示例 XML 文件:典型采购订单 (LINQ to XML) 中所述。
XElement po = XElement.Load("PurchaseOrder.xml",  
    LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);  
string[] splitUri = po.BaseUri.Split('/');  
Console.WriteLine("BaseUri: {0}", splitUri[splitUri.Length - 1]);  
Console.WriteLine();  
Console.WriteLine("{0}{1}{2}",  
    "Element Name".PadRight(20),  
    "Line".PadRight(5),  
    "Position");  
Console.WriteLine("{0}{1}{2}",  
    "------------".PadRight(20),  
    "----".PadRight(5),  
    "--------");  
foreach (XElement e in po.DescendantsAndSelf())  
    Console.WriteLine("{0}{1}{2}",  
        ("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),  
        ((IXmlLineInfo)e).LineNumber.ToString().PadRight(5),  
        ((IXmlLineInfo)e).LinePosition);  
Dim po As XElement = XElement.Load("PurchaseOrder.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo)  
Dim splitUri() As String = po.BaseUri.Split("/"c)  
Console.WriteLine("BaseUri: {0}", splitUri(splitUri.Length - 1))  
Console.WriteLine()  
Console.WriteLine("{0}{1}{2}", _  
    "Element Name".PadRight(20), _  
    "Line".PadRight(5), _  
    "Position")  
Console.WriteLine("{0}{1}{2}", _  
    "------------".PadRight(20), _  
    "----".PadRight(5), _  
    "--------")  
For Each e As XElement In po.DescendantsAndSelf()  
    Console.WriteLine("{0}{1}{2}", _  
        ("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _  
        DirectCast(e, IXmlLineInfo).LineNumber.ToString().PadRight(5), _  
        DirectCast(e, IXmlLineInfo).LinePosition)  
Next  
该示例产生下面的输出:
BaseUri: PurchaseOrder.xml  
Element Name        Line Position  
------------        ---- --------  
PurchaseOrder       2    2  
  Address           3    4  
    Name            4    6  
    Street          5    6  
    City            6    6  
    State           7    6  
    Zip             8    6  
    Country         9    6  
  Address           11   4  
    Name            12   6  
    Street          13   6  
    City            14   6  
    State           15   6  
    Zip             16   6  
    Country         17   6  
  DeliveryNotes     19   4  
  Items             20   4  
    Item            21   6  
      ProductName   22   8  
      Quantity      23   8  
      USPrice       24   8  
      Comment       25   8  
    Item            27   6  
      ProductName   28   8  
      Quantity      29   8  
      USPrice       30   8  
      ShipDate      31   8  
注解
使用LINQ to XML,可以采用多种方式反序列化 XML。 可以从字符串中分析、从文件加载它,或者从某个 TextReader 或文件中 XmlReader读取它。 在所有这些情况下,LINQ to XML使用一个或多个具体子类XmlReader。
有时 XmlReader 具有基 URI,有时不具有基 URI。 例如,从文件加载时, XmlReader 知道基本 URI,但在从 XmlReader 创建 Parse 的方法进行读取时,无法 XmlReader 报告基本 URI;XML 位于字符串中。
如果在分析或加载 XML 时指定SetBaseUri,LINQ to XML将在返回节点时XmlReader请求每个节点的基 URI。 如果读取器具有基 URI,LINQ to XML将使用LINQ to XML节点保存信息。 此属性返回该信息。 如果基础 XmlReader 没有基 URI,则此属性将返回一个空字符串。
加载 XML 树时设置 SetBaseUri 将导致分析速度较慢。
设置 XML 树的基 URI 时,LINQ to XML在树的根目录上放置批注。 此属性是一个计算属性,并导航树以查找基本 URI。