1

我正在构建一个 ASP.Net MVC4 应用程序,客户希望能够提供 XML 配置文件,以在应用程序中配置供应商列表,如下所示:

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

需要将该文件放到网络位置(即不在网络服务器上),并且我没有用于导入和存储数据的数据库。

客户还希望能够每天更新它。所以我想我必须在应用程序启动时进行某种导入(并验证文件)。

关于实现这一目标的最佳方法的任何好主意?- 数据需要快速访问 - 理想情况下,我只想导入/存储一次,或者能够快速访问它 - 我需要能够验证文件,因此能够谨慎行事可能是切换到备份

一种想法是使用 Entity Framework 之类的东西,并在需要时简单地读取文件,但如果可能的话,如果可能的话,我会将它保存在应用程序的内存中。

干杯文森特

4

1 回答 1

1

无需将其导入数据库或使用实体框架。您可以简单地使用 .NET Xml 序列化来完成此操作。

命令行工具xsd.exe将从您的 Xml 文件生成 c# 类。从命令行:

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

第一个命令将从您的 xml 推断并创建一个 xml 模式文件 (myfile.xsd)。第二个命令将架构文件转换为 c# 类。

然后使用XmlSerializer 类将您的 xml 文件反序列化为对象(假设一个文件中有多个对象):

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 回答