config或者xml中的embedded使用方法。

在配置iBatis.NET的sqlmap.config时,经常提示说“Unable to load embedded resource from assembly”的错误,明明某个项目中存在这文件,并且在根目录下,而且生成操作是“嵌入的资源”。却提示这个错误,其中的定义是:

<properties embedded="database.config,piggyWinForm.Data"/>

经过网上搜索相关资料,发现很多类似的embedded配置中xml或者config都出现多个“.”,而不是我这里的就一个文件名,因此,我在文件前面加上命名空间后,竟然没报这个错。这才醒悟,embedded的格式是:

<properties embedded="<命名空间>database.config,<程序集>"/>

如果一个项目的程序集和命名空间相同的话,则文件前面的<命名空间>可以略去。

 

为何要使用embedded?目的在于安全性,特别是在开发winform项目时,避免客户端遭客户乱篡改,或者某些其它原因导致xml或者是其它的配置文件被修改而出问题。特别是iBatis的sqlmap中的sql语句。

 

今天觉得iBatis的xml配置文件放在根目录下很不爽。于是把这些xml放入map文件夹。直接编译调试,与猜测一样,确实会报错,提示找不到文件。于是去修改配置文件,修改embedded为:

<sqlMap embedded="piggyWinFormTemplet.Data.Auto.Map.Myperson_Auto.xml,piggyWinForm.Data.Auto"/>

居然成功了。因此,embedded的真正格式是:

<properties embedded="<命名空间>.<相对路径>.database.config,<程序集>"/>

你可能感兴趣的:(config)