利用反射进行动态加载dll
来源:互联网 发布:算法竞赛入门书籍推荐 编辑:程序博客网 时间:2024/06/05 15:17
动态调用dll
/// <summary> /// 短信发送接口实现工厂 /// </summary> public static class EosSMSProviderFactory { public static bool InitProvider() { IEosSMSProvider provider = GetProvider(); return provider != null; } /// <summary> /// 获得当前配置的发送短信接口 /// </summary> /// <returns></returns> public static IEosSMSProvider GetProvider() { string smsProviderClass = ConfigurationManager.AppSettings["sms.provider"]; if (string.IsNullOrEmpty(smsProviderClass)) return null; return (IEosSMSProvider)Activator.CreateInstance(getType(smsProviderClass)); } public static Type getType(string smsProviderClass) { Type providerType = Type.GetType(smsProviderClass); if (providerType != null) { return providerType; } string dllname = smsProviderClass.Substring(smsProviderClass.IndexOf(",")+1).Trim().ToLower(); if (!dllname.EndsWith(".dll")){ dllname = dllname + ".dll"; } string dllfile = AppDomain.CurrentDomain.BaseDirectory + "bin\\Plugin\\"+dllname; Assembly assembly = Assembly.LoadFrom(dllfile); string classname = smsProviderClass.Substring(0, smsProviderClass.IndexOf(",")); return assembly.GetType(classname); } }
短信发送接口
/// <summary> /// Eos短信发送接口 /// 实现这个接口后可被Eos系统调用 /// </summary> public interface IEosSMSProvider { /// <summary> /// 发送手机短信 /// 如果不设置固定发送时间,则参数sendTime设为空 /// </summary> /// <param name="receivers">接收人号码列表</param> /// <param name="content">短信内容</param> /// <param name="sendTime">固定发送时间</param> /// <returns>返回信息</returns> string SendMessage(string[] receivers, string content, string sendTime); /// <summary> /// 接受上行回复 /// </summary> /// <returns></returns> string GetReceivedMsg(); }
实现接口类 完成短信发送
class aliyunSMSProvider : IEosSMSProvider { private string AppKey = "23537294"; private string AppSecret = "2bc5652127261532fb3f77fa51139fe8"; private string SignName = "短信测试"; private string TemplateCode = "SMS_2*****"; private const String Host = "http://sms.market.alicloudapi.com"; private const String path = "/singleSendSms"; private string RegionId = "cn-hangzhou"; public aliyunSMSProvider() { Init(); } private void Init() { AppKey = ConfigurationManager.AppSettings["aliyun.appKey"]; AppSecret = ConfigurationManager.AppSettings["aliyun.appSecret"]; SignName = ConfigurationManager.AppSettings["aliyun.SignName"]; TemplateCode = ConfigurationManager.AppSettings["aliyun.TemplateCode"]; } public string SendMessage(string[] receivers, string content, string sendTime) { DateTime dtSendTime; bool withSendTime = DateTime.TryParse(sendTime, out dtSendTime); string receiverText = ""; string sendTimeText = ""; if (withSendTime) { sendTimeText = dtSendTime.ToString("yyyy-MM-dd hh:mm:ss"); } foreach (string phonenumber in receivers) { if (receiverText == "") { receiverText = phonenumber; } else { receiverText += ";" + phonenumber; } } IClientProfile profile = DefaultProfile.GetProfile(RegionId, AppKey, AppSecret); IAcsClient client = new DefaultAcsClient(profile); SingleSendSmsRequest request = new SingleSendSmsRequest(); //String json = "{{\"name\":\"{0}\"}}"; //json = string.Format(ParamString, content); request.SignName = SignName; request.TemplateCode = TemplateCode; request.RecNum = receiverText; request.ParamString = content; SingleSendSmsResponse httpResponse = client.GetAcsResponse(request); return httpResponse.HttpResponse.isSuccess().ToString(); } public string GetReceivedMsg() { return ""; } }
0 0
- 利用反射进行动态加载dll
- 通过反射动态加载DLL
- C#利用反射动态加载DLL(C#)并调用其中的接口
- C#动态加载DLL(反射学习(二))
- C#通过反射实现动态加载DLL
- 利用反射实现类的动态加载
- 利用反射实现类的动态加载
- 利用反射实现类的动态加载
- 利用反射实现窗体动态加载
- Java利用反射动态加载类实战
- 利用反射实现类的动态加载
- 利用dll来动态加载不同界面
- 利用反射动态加载Assembly动态执行类型方法
- 利用C#的反射机制动态调用DLL类库
- 利用C#的反射机制动态调用DLL类库
- C#中使用反射动态加载和卸载DLL
- C#中使用反射来动态加载和卸载DLL
- C#中使用反射来动态加载和卸载DLL
- mysql查询性能优化
- Git 日常使用
- 文本框光標插入圖片
- Do We Really Need to Collect Millions of Faces for effective face recognition
- 控件的字体设置的两种方式
- 利用反射进行动态加载dll
- 压力测试工具JMeter入门教程
- 块级元素与行内元素的区别
- Struts2实现文件的上传和下载
- 【使用JMeter 对Web服务器压力测试】
- 一个Spring启动时找不到类的问题修复记录
- form标签的位置影响jQuery WeUI滚动加载使用的例子
- HttpURLConnection请求网络
- seetaface FaceDetection模块