1

私は ASP.Net MVC4 アプリケーションを構築しています。顧客は、次のようなアプリケーションでベンダー リストを構成するために、XML 構成ファイルを提供できるようにしたいと考えています。

<Vendor>
    <Vendor name="ABC Computers" deliveryDays="10"/>
    <Vendor name="XYZ Computers" deliveryDays="15"/>
</Vendors>

ファイルをネットワーク上の場所 (つまり、Web サーバー上ではない場所) にドロップする必要がありますが、データをインポートして保存するためのデータベースがありません。

顧客はまた、それを毎日更新する機能も望んでいます。そのため、アプリケーションの起動時に何らかのインポート (およびファイルの検証) を行う必要があると考えています。

これを達成するための最良の方法について何か良いアイデアはありますか? - データはすぐにアクセスできる必要がある - 理想的には、一度インポート/保存するか、すぐにアクセスできるようにしたい - ファイルを検証できるようにする必要があるため、できるようにするのが賢明かもしれませんバックアップに切り替える

1 つの考えは、Entity Framework のようなものを使用して、必要なときにいつでもファイルを読み取るだけでしたが、可能であればアプリケーションのメモリに保持することでした。

乾杯ヴィンセント

4

1 に答える 1

1

データベースにインポートしたり、Entity Framework を使用したりする必要はありません。これを実現するには、.NET Xml シリアル化を使用するだけです。

コマンド ライン ツールxsd.exeは、Xml ファイルから c# クラスを生成します。コマンドラインから:

xsd.exe myfile.xml
xsd.exe /c myfile.xsd

最初のコマンドは、xml から xml スキーマ ファイル (myfile.xsd) を推測して作成します。2 番目のコマンドは、スキーマ ファイルを C# クラスに変換します。

次に、XmlSerializer クラスを使用して、xml ファイルをオブジェクトに逆シリアル化します (1 つのファイルに複数のオブジェクトがあると仮定します)。

MyCollection myObjects= null;
string path = "mydata.xml";

XmlSerializer serializer = new XmlSerializer(typeof(MyCollection));

StreamReader reader = new StreamReader(path);
myObjects = (MyCollection)serializer.Deserialize(reader);
reader.Close();

上記で生成された .xsd ファイルを使用して、xml ファイルを検証できます。方法を示すリンクは次のとおりです: http://msdn.microsoft.com/en-us/library/ms162371.aspx

于 2013-07-05T14:18:06.590 に答える