2011-09-26 64 views
0

我想通過我的POCO啓用XPath導航(即「普通的舊CLR對象」)。從簡短的搜索,我發現了幾個選項:是否有POCO的XPathNavigator的開源實現?

  1. 使用ObjectXPathNavigator .NET 1.0 implementation。但是,由於它是針對.NET 1.0編寫的,因此我擔心泛型可能存在的問題(以及當時尚未支持的任何其他問題)。
  2. Implementing my own XPathNavigator by extending the .NET XPathNavigator class

第二個選擇似乎是我想要的。但是,我沒有時間寫自己的 - 尤其是因爲我期望別人已經實現了它並使其成爲開源代碼。我只是很難找到這個難以捉摸的PocoXPathNavigator實現!

謝謝。

+1

那麼,爲什麼不試試'ObjectXPathNavigator'? – svick

+0

今天,人們會使用LINQ來處理這個用例。 –

+0

@svick,我可能會嘗試它之前,我開始實施我自己的。 –

回答

0

最好的辦法,似乎是用ObjectXPathNavigator(選項1),因爲它是開源的。我計劃將其擴展到支持泛型和其他任何我需要的功能。

-1

可以序列你的對象爲XML字符串到內存,然後使用標準的XPathNavigator在它來搜索。還有一些原生XML數據庫系統,您可以使用這些系統來序列化您的對象。

問題是,爲什麼您需要XPathNavigator來搜索對象嗎? 如果你有一個大的對象圖您可以考慮使用某種圖DB/NoSQL的分貝的。

+1

很好的問題。序列化我的對象到XML字符串*正是*我想避免由於性能考慮。 .NET對象上的xpath查詢允許我支持使用內存中XML文檔的舊映射,並執行可怕的操作 –

+1

why?即使它不是問題的海報,也沒有錯。 – codymanix