当前位置: 首页 > news >正文

机电网站建设哪里有做网站的平台

机电网站建设,哪里有做网站的平台,赣州市建设工程造价管理网站,南京做网站建设的公司哪家好我有一个项目 开始取数据和结束数据部分是一样的,但中间处理数据是根据客户需求来转换的 又要求增加一个客户数据转换 主程序是不能停下来的 所以这个项目转数据转换部分做成插件式 每个客户的数据转换都是一个项目 都是一个DLL 主程序里面定义好接口类或者抽象…

我有一个项目 开始取数据和结束数据部分是一样的,但中间处理数据是根据客户需求来转换的

又要求增加一个客户数据转换 主程序是不能停下来的

所以这个项目转数据转换部分做成插件式

每个客户的数据转换都是一个项目 都是一个DLL

主程序里面定义好接口类或者抽象类以约束数据转换项目方法

一:主程序 加载的时候就监听一个文件夹里的DLL 切加载DLL

public static void AgreementDllWatcher()
{string dir = INIConfig.AgreementPath;string[] allDll = Directory.GetFiles(dir, "*.dll");foreach (var fdll in allDll.OrderBy(f => System.IO.File.GetLastWriteTime(f))){LoadDllLoadMenu(fdll);}// 创建FileSystemWatcher对象并设置要监视的目录FileSystemWatcher watcher = new FileSystemWatcher(dir);// 设置监视的文件类型watcher.Filter = "*.dll";// 设置监控的事件类型watcher.NotifyFilter = NotifyFilters.LastWrite| NotifyFilters.FileName| NotifyFilters.DirectoryName;// 监视子目录watcher.IncludeSubdirectories = true;// 定义事件处理器watcher.Created += (source, fsea) =>{// 打印发生的事件Console.WriteLine($"{fsea.FullPath} - {fsea.ChangeType}");Thread.Sleep(5000);LoadDllLoadMenu(fsea.FullPath);};//watcher.Deleted += OnChanged;//watcher.Changed += OnChanged;//watcher.Renamed += OnRenamed;// 只当需要时启动监控watcher.EnableRaisingEvents = true;MainForm.form1.ShowMessage("协议文件夹监控启动。。。");// 关闭监控//watcher.EnableRaisingEvents = false;}
 static List<Type> ListAgreementClass = new List<Type>();private static void LoadDllLoadMenu(string FullPath){try{//动态加载程序集Assembly assembly = Assembly.LoadFile(FullPath);if (assembly != null){{获取程序集中指定的类类型,参数为:命名空间.类型名//var type = assembly.GetType("ConsoleApp2.Xiaoa");创建实例,方法一//var obj = Activator.CreateInstance(type);创建实例,方法二  ,参数为:命名空间.类型名    var obj = assembly.CreateInstance("DynamicReferenceDLL.MyMath");获取实例中的方法//var method = type.GetMethod("e");调用实例方法//object result = method.Invoke(obj, new object[] { });}{//Type t = nameSpaceAll.Where(x => x.Name == tableName.ToString()).FirstOrDefault();  // assembly.GetTypes() //获取当前类库下所有类型//.Where(t => typeof(I_Sl651).IsAssignableFrom(t)) //获取间接或直接继承t的所有类型//.Where(t => !t.IsAbstract && t.IsClass) //获取非抽象类 排除接口继承IEnumerable<Type> wormMain = assembly.GetTypes().Where(t => !t.IsAbstract && t.IsClass);foreach (Type t in wormMain){ListAgreementClass.Remove(ListAgreementClass.Where(c => c.Name == t.Name).FirstOrDefault());ListAgreementClass.Add(t);}//ListAgreementClass.AddRange(wormMain);// m.GetInterface(typeof(I_Sl651).Name) != null);//var tmpObj = (SL651Standard)Activator.CreateInstance(wormMain);//tmpObj.LoadMenu();}}}catch (Exception ex){Logging.SaveLog(ELogLayer.Transfer, ex.ToString(), ELogType.Error);}}

二:热替换

麻烦:在你监控的文件夹里有同名的DLL系统会说占用不让换

解决:将DLL文件名后面加上时间 就可以复制进去了

注意程序里面添加到内存的是 类名 不是我们DLL的文件名,所以做好 list的替换就行

http://www.yayakq.cn/news/435243/

相关文章:

  • 个人网站建设教程视频南京自助建站
  • 电子商务网站建设教学计划网站首页 关键词
  • 临沂网站建设做网站成都网站商城建设
  • visual制作网站开发动易网站模板制作方法
  • 档案馆建设网站网站代码用什么打开
  • 金湖县城乡建设局网站搜好资源网
  • 做个网站多少钱合适北京品牌网站定制公司
  • 在网站建设会议上的讲话如何查看一个网站是用什么cms做的
  • 昌江网站建设wordpress 顶 踩 插件
  • 淮南建设局网站备案微信小程序商城怎么弄
  • 怎么自己做网站吗昆山广告公司
  • 网站开发设计思想报告wordpress如何压缩图片
  • 网站备案号 脱离服务商如何自己设计广告图
  • 网站代码在线优化品牌设计公司口号
  • 学习建设网站书籍域名如何解析别人网站
  • 我是做装修什么网站可以四川网站建设外包服务
  • 做网站赚钱还是企业宣传片天津网上商城网站建设
  • 湛江网站制作系统为什么做网站比app便宜
  • 青岛专业网站制作团队wordpress的主机要求
  • 网站建设可以资本化吗一般公司建设网站布局
  • 网站设置的建设过程和准备阶段做网站用phpcms还是
  • python做网站性能太差自己做网站视频教学
  • 大连网站在哪备案做网站的价格表
  • 网站建设方案优化襄阳网站建设多少钱
  • 网站源码怎么预览罗湖建设网站
  • 合肥做网站的公司有哪些大宗农产品交易平台
  • php网站制作商品结算怎么做腾讯街景地图实景手机版
  • 摄影素材库网站在英特尔上建设网站可选择的方案有
  • 南宁网站开发企业大型企业网站欣赏
  • 湖南张家界建设局网站贵阳微信小程序制作开发