我有一个开源应用程序(here

该应用程序获取一个字符或一个句子,并提供有关它的一些unicode信息。

Iuse由Unicode.org提供的Unicode字符数据库,这是一个XML文档(130MB)

首先,我将此XML嵌入到DLL中,但我不知道这是一个好方法还是没有。因为DLL大小的增长仅仅是因为这个XML文档。我可以像使用其他资源一样使用它,但是用户可以看到它。

我该怎么办?最好的模式是什么?为什么?

TIA

最佳答案

我想,如果您乐于在每次更改时重新编译并重新部署,则嵌入式资源是一个不错的选择。同样,仅仅因为您可能乐于这样做并不意味着每个人都会:)

一种非常普遍的方法是抽象出接口背后的任何类型的数据访问。如果这样做,您将能够让用户选择他们想要的实现(假设您提供了一些实现),并且可以让他们编写自己的实现。就模式而言,这是Dependancy Inversion(也称为控制反转)。

如果您通过config(即使用Factory)来驱动提供程序的实例化,则无需重新部署应用程序的主要部分(使用数据的部分)就可以切换提供程序。因此,您可以根据需要设置任意多个提供程序:XML读取文件提供程序,SqlLite数据提供程序,基于Web服务/基于云的提供程序等。

我喜欢Rolands的方法-您也可以将其构建为提供程序的实现(将文件读入内存,快速响应来自内存的查询)。

Using Resources in Visual Studio .NET

关于.net - 对于只读xml数据库,Embed Resource是一种好方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3014560/

10-17 02:38