2021年1月15日星期五

动态加载及调用程序集


static DbCmd()  {   AppDomain currentDomain = AppDomain.CurrentDomain;   currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);  }  static Assembly MyResolveEventHandler(object sender, ResolveEventArgs args)  {   string strFielName = args.Name.Split(',')[0];   if (strFielName.ToLower().EndsWith(".resources")) //不处理资源文件    return null;   ExtMethod.WriteLog("DbCmd 程序集获取失败,准备动态加载:" + args.Name);   string parentRoot = AppDomain.CurrentDomain.BaseDirectory;   string dllName = GetDllOrExeName(parentRoot, strFielName);   if (dllName == "")   {    parentRoot = System.IO.Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\'));    dllName = GetDllOrExeName(parentRoot, strFielName);   }   if (dllName != null)   {    ExtMethod.WriteLog("DbCmd 程序集开始加载文件:" + dllName);    return Assembly.LoadFile(dllName);   }   else   {    ExtMethod.WriteLog("DbCmd 程序集获取失败:找不到文件" + strFielName);   }   return null;  }  /// <summary>  /// 获取指定名称的dll路径  /// </summary>  /// <param name="_DirectoryName">目录路径</param>  /// <param name="_assemablName">程序集名称</param>  /// <returns>返回路径名称</returns>  static string GetDllOrExeName(string _DirectoryName, string _assemablName)  {   string filter = _assemablName + ".???";   var subFiles = System.IO.Directory.GetFiles(_DirectoryName, filter, System.IO.SearchOption.AllDirectories);   string dllName = "";   foreach (var item in subFiles) //搜索下级目录   {    if (item.EndsWith(".dll", StringComparison.OrdinalIgnoreCase))    {     dllName = item;     break;    }    if (item.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))    {     dllName = item;     break;    }   }   return dllName;  }









原文转载:http://www.shaoqun.com/a/508938.html

跨境电商:https://www.ikjzd.com/

淘粉8:https://www.ikjzd.com/w/1725.html

淘粉吧首页:https://www.ikjzd.com/w/1725.html


staticDbCmd(){AppDomaincurrentDomain=AppDomain.CurrentDomain;currentDomain.AssemblyResolve+=newResolveEventHandler(MyResolveEventHandler);}staticAssemblyMyResolveEventHandler(objectsender,ResolveEvent
myyearbook:myyearbook
亚马逊礼品卡:亚马逊礼品卡
红树林那边有地铁吗?红树林最近的地铁站是什么?:红树林那边有地铁吗?红树林最近的地铁站是什么?
2020佛山禾雀花哪里有?佛山看禾雀花的地方?:2020佛山禾雀花哪里有?佛山看禾雀花的地方?
五桂山逍遥谷三八节有活动吗?2020三八节逍遥谷活动介绍?:五桂山逍遥谷三八节有活动吗?2020三八节逍遥谷活动介绍?

没有评论:

发表评论

注意:只有此博客的成员才能发布评论。