0

私は自分の状況を説明するだけだと思います。XML ファイルの読み取りと書き込みを行うデスクトップ アプリケーションがあります。この同じ XML ファイルは、ASP サイトによって読み書きされます。値が変更された場合、両側に通知する必要があります。これは、XML を読み直して値を適用するだけなので、デスクトップ アプリ側では比較的簡単ですが、Web 側ではより複雑になります。

Web サイトは、XML から更新された情報をすぐに取得する必要があります。問題は、これらの値を保存し、更新/変更/新規/削除された値の通知を処理する適切な方法を理解できないことです。XML ファイル全体を送信することは問題外です。

ページにデータを取得することは問題ではありません。私はそれをすべて配線しています。問題は、増分更新を処理し、変更された値を通知できるようにするために、このデータをどのように保存する必要があるかということです。

私は非常に不格好な解決策を持っていますが、それは絶対に嫌いです。このデータを格納するコンテナのタイプについて、誰かが正しい方向に向けてくれることを期待していました。私は、C#/ASP のこの分野では比較的経験がありません。

私の小説を読んでくれてありがとう。

4

2 に答える 2

0

さて、私はちょっとした解決策を見つけました。

「現在の」XML のコピーを、適切な Type を持つ XmlSerializer として保持します。新しい XML を読み取るときは、XmlSerializer としても読み取りますが、それらを比較するために、それぞれ JSON と標準の文字列比較を行います。

XML 構造は変更されず、内部の値だけが変更されるため、シリアル化された JSON を比較することでどの「セクション」が変更されたかを確認できるため、これはうまくいきます。

ちょっと奇妙ですが、私にとってはうまくいきます。

于 2013-06-18T21:14:05.670 に答える
0

Web サイトが「すぐに」更新されるとはどういう意味ですか? コードは通常、次のリクエストでのみ実行されます (それが来るたびに)。したがって、すべてのリクエストで、ファイルの最新のコピーを読み取ることができます (ただし、そうではありません!)。

一般的なアーキテクチャ用語では、このように調整する 2 つのコンポーネント/アプリケーションが必要な場合、メッセージ キューは自然な抽象化です。現在、プロセス間通信を行うための共有メモリのように XML ファイルを扱っています。

それが解決策のようなものであり続ける場合は、XML を DB テーブルに置き換えることをお勧めします。更新のポーリング、調整、および受信がより簡単になります。

于 2013-06-18T18:52:48.393 に答える