【问题标题】:C# equivalent of VB.NET "Imports <xmlns>" XML schemaC# 等效于 VB.NET "Imports <xmlns>" XML 模式
【发布时间】:2013-05-06 19:09:47
【问题描述】:

我有一个旧的 VB.NET Web 应用程序项目,我正在将其转换为 C#。我已经使用 SharpDevelop 转换了大部分应用程序,但在转换一些特殊情况代码时遇到了问题:

' Namespace
Imports <xmlns:items="urn:list_items">

' Code:
Dim group = From items In ListItems...<items:item> _
                 Where items.<item.name> = "Something"
                 Select names = items.<item.name>

我不知道 C# 等效于 VB.NET 的使用 XML 模式的方法。有没有办法导入架构并使用相同的 LINQ 语句?

编辑:

让我陷入循环的部分是 Imports &lt;xmlns:items="urn:list_items"&gt;using urn:list_items 的转换(通过 SharpDevelop)。编译器抱怨这种语法。

我只是好奇是否存在与导入 XML 模式并将其用作 LINQ 查询的一部分的指令等效的 C#,但鉴于 C# 不像 VB.NET 那样支持 XML 文字,不相关。

【问题讨论】:

  • 请发布更多代码,包括 XML,以便我们确定您的实际要求。
  • @JohnSaunders:省略号的意思是“后代”。 msmvps.com/blogs/deborahk/archive/2010/08/31/…。 Linq 语句似乎不言自明。我假设它确实有效。
  • @Paperjam:在任何情况下,您都不能使用当前编写的 Linq 语句。 省略号是 VB.NET 的一项功能,在 C# 中不受支持。
  • 抱歉含糊不清。对于Imports 转换(翻译为using urn:list_items),我被抛出了一个关于编译器错误的循环,所以我很难提出这个问题。我认为@RobertHarvey 是对的:没有办法使用所写的 VB.NET LINQ 语句,因此通过指令使用模式是不相关的。

标签: c# vb.net xml-namespaces


【解决方案1】:

没有等价物。 C# 不支持 XML 文字。


C# 确实支持 LINQ to XML。但是,您发布的代码是特殊的 VB.NET 语法,它允许以更接近实际 XML 的形式指定 XML 和 XML 的处理。 C# 没有这方面的等价物。


如果您实际上不是在寻找等价物,而只是在寻找翻译,那么可能是以下内容:

XNamespace itemsNs = "urn:list_items";
var group = from items in ListItems.Descendants(itemsNs + "item")
            where items.Element("item").Element("name").Value == "Something"
            select new
                {
                    names = items.Element("item").Element("name").Value
                };

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 2014-02-15
    • 2011-05-07
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    相关资源
    最近更新 更多