非常に高い使用負荷に直面している.NETアプリケーションを使用しているため、パフォーマンスが問題になっているため、データ方法論をふるいにかけています。クエリの繰り返しと読み取り専用の性質により、XML に大きく依存しています。
1 回のアクセスで同じファイルの多数の読み取りが発生します。いくつかは単一変数の読み取りであり、いくつかはデータソースへのバインディングです (後者はより大きな課題です)。一度ロードしてから、それを使用する他のページや関数にオブジェクトを渡したいです。私が DataSource バインドを行ってきた方法は次のとおりです。
親ファイルで:
Public Property XmlDoc As XmlDocument("file.xml")
子ファイルで:
Dim nodes As XmlNodeList = XmlDoc.SelectNodes("/path")
If nodes.Count > 0 Then
myListView.DataSource = nodes
myListView.DataBind()
Else
myListView.Visible = False
End If
このコードは簡単に実行できますが、MSDNで XmlDocument のパフォーマンスが非常に悪いことを読みました。変数には簡単な XPathNavigator を使用することをお勧めしますが、それをコントロールのデータソースとして設定する方法がわかりません。これは私の試みです:
Dim xDoc As XPathDocument = New XPathDocument("file.xml")
Dim xNav As XPathNavigator = xDoc.CreateNavigator()
myListView.DataSource = xNav.MysteryFunction("/path")
myListView.DataBind()
残念ながら MysteryFunction() は存在しません。
誰かがこのコードを手伝ったり、高性能のソリューションを提供したりできますか?