欢迎光临
我们一直在努力

[C#]利用resx文件存放Mail模板-.NET教程,C#语言

建站超值云服务器,限时71元/月

 

一直以来,mail模板的维护都没有一个定式,不是存放于数据库,就是直接读html文件,要么更变态直接在source中拼接html代码,这些都有一定的弊端。

存放于数据库中:
一是徒增操作的烦琐性,二是若要修改mail模板,每次都得从数据库中捞出来编辑再存入数据库中,才能看到编辑后的效果,不方便。

读文件的方式:
这种方式配置起来不是很方便,项目灵活性不怎么好,要限定文件的路径等问题,尤其是web项目。

拼在source中:
这种方式就更加郁闷了,需要修改模板时,得先运行程式将该html获得,再做编辑,然后再拼在source中,会让程序员有砍人的冲动!

这次在做项目的过程中,需要维护mail模板,开始的时候直接读文件的方式,因为pm没有提供数据库,也不想增加维护的苦难度。后来思考来思考去,觉得不怎么妥当,决定尝试一下资源文件的做法(还好的.net项目

1、首先创建一个mailtemplate.resx文件到项目中,并设定编译选项为“嵌入的资源”。

2、在mailtemplate.resx文件中维护html字符串(以键值对的形式)

3、在程序中就可以通过resourcemanager读取该resx中的资源。
        public static string getresourcebykey(string resourcename,string key)
        {
            // create a resource manager to retrieve resources.
            resourcemanager rm = new resourcemanager(resourcename, assembly.getexecutingassembly());
       
            rm.ignorecase = true;

            // retrieve the value of the string resource named
            string strvalue = rm.getstring(key);
           
            rm = null;

            return strvalue;
        }
4、这里原理是将mail template作为内嵌的资源编译到项目中,那么该资源即存在于该装配件中,在程序运行时,可以利用反射技术通过当前assembly的信息获取其中的资源。

需要注意的是:resourcemanager构造函数中resourcename为资源文件的namespace,如mailtemplate.resx的namespace为testproject.mailtemplate,则resourcename应该为testproject.mailtemplate。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » [C#]利用resx文件存放Mail模板-.NET教程,C#语言
分享到: 更多 (0)