快速业务通道

Discuz!NT邮件插件机制分析

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-11

  如何加载上图中下拉列框中的邮件发送邮件的数据呢,这里用的是对DLL进行反射。
找出相关的用上面“用户定制属性”进行标识的类代码.相关的代码如下(位于Discuz.Web
项目下的admin\global\global_emailconfig.cs文件中) 1public void GetSmtpEmailPlugIn()
 2{
 3   
 4    DirectoryInfo dirinfo = new DirectoryInfo(HttpRuntime.BinDirectory);
 5    foreach (FileSystemInfo file in dirinfo.GetFileSystemInfos())
 6    {
 7        if (file != null)
 8        {
 9            if (file.Extension.ToLower().Equals(".dll"))
10            {
11                Assembly a = Assembly.LoadFrom(HttpRuntime.BinDirectory + file);
12                foreach (Module m in a.GetModules())
13                {   
14                     //采用过滤器进行类名过滤
15                     foreach (Type t in m.FindTypes(Module.FilterTypeName, "*"))
16                     {
17                          foreach (object arr in t.GetCustomAttributes(typeof(SmtpEmailAttribute), true))
18                          {
19                               SmtpEmailAttribute sea = (SmtpEmailAttribute)arr;
20
21                               smtpemail.Items.Add(new ListItem(sea.PlugInName, t.FullName + "," +
22    (sea.DllFileName != "" ? sea.DllFileName : file.ToString().Replace(".dll", ""))));
23                          }
24                    

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号