将rdlc报表作为资源嵌套使用
如果我们准备在Windows Forms里面使用rdlc报表,那么会遇到一个问题:rdlc报表到底要不要作为附属文件的方式随程序发布?
这样做的优点是:报表可以后期修改,只要名称不变。
这样做的缺点是:报表暴露给用户了,可能被用户无意或有意地删除或修改,造成程序运行异常。
针对上述的问题,我们其实还可以将报表作为资源的方式嵌入。很显然,因为是作为资源嵌入的,所以是不可以再修改的。但因为资源是编译到程序集内部的,所以可以保护报表。
1. 将报表的属性中“生成操作”设置为“嵌入的资源”
2. 通过反编译工具可以看到嵌入资源在程序集内部的样子
一般里面的资源名称都会加上当前程序集的名称作为前缀。
3. 如何将嵌入的资源读取出来,作为报表查看器控件的来源呢?
也就是说,我们可以通过LocalReport的一个特殊属性(ReportEmbeddedResource)来很方便地实现该需求