谨记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,<程序集>"/>
原创作品出自努力偷懒,转载请说明文章出处:http://www.cnblogs.com/kfarvid/