【问题标题】:Is there an open-source implementation of an XPathNavigator for POCOs?是否有用于 POCO 的 XPathNavigator 的开源实现?
【发布时间】:2011-09-26 13:58:44
【问题描述】:

我想在我的 POCO 上启用 XPath 导航(即“普通旧 CLR 对象”)。通过简短的搜索,我发现了几个选项:

  1. 使用ObjectXPathNavigator .NET 1.0 implementation。但是,由于它是针对 .NET 1.0 编写的,我担心泛型的潜在问题(以及当时不支持的任何其他问题)。
  2. Implementing my own XPathNavigator by extending the .NET XPathNavigator class

第二个选项似乎是我想要的。但是,我没有时间自己编写——尤其是因为我希望其他人已经实现了它并使其开源。我只是很难找到这个难以捉摸的 PocoXPathNavigator 实现!

谢谢。

【问题讨论】:

  • 那你为什么不试试ObjectXPathNavigator
  • 今天有人会在这个用例中使用 LINQ。
  • @svick,我可能会先尝试一下,然后再开始实施我自己的。
  • @Daniel,你能详细说明一下吗?谢谢。
  • @IgorPashchuk:你到底想知道什么?网上有大量关于 LINQ 的信息。

标签: c# .net xml xpath


【解决方案1】:

似乎最好的方法是使用ObjectXPathNavigator(选项1),因为它是开源的。我计划扩展它以支持泛型和我需要的任何其他内容。

【讨论】:

    【解决方案2】:

    您可以序列化您的对象作为xml 字符串到内存中,然后使用标准的XPathNavigator 在其中进行搜索。还有一些本机 XML 数据库系统,您可以使用它们将对象序列化到其中。

    问题是,为什么需要 XPathNavigator 来搜索对象? 如果您有一个大型对象图,您可以考虑使用某种 graph db / nosql db

    【讨论】:

    • 好问题。出于性能考虑,将我的对象序列化为 xml 字符串 正是 我想要避免的。 .NET 对象上的 xpath 查询允许我支持使用内存中 XML 文档并执行得非常糟糕的遗留映射
    • 为什么是-1?即使它不是问题的海报,也没有错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多