zoukankan      html  css  js  c++  java
  • .NET程序加壳 — 之动态加载程序集

    代码
    [STAThread]
    static void Main()
    {
        
    try
        {
            AppDomain.CurrentDomain.AssemblyResolve 
    += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
            
    //AppDomain.CurrentDomain.Load(Properties.Resources.XXX_Admin);
            
    // 从二进制流加载主程序集(EXE文件)
            Assembly assembly = Assembly.Load(Properties.Resources.XXX_Admin);
            
    // 获取程序集的入口方法(main方法)
            MethodInfo mi = assembly.EntryPoint;
            
    // 调用程序集的入口方法
            mi.Invoke(nullnull); 
        }
        
    catch (Exception ex)
        {
            
    string msg = ex.Message;
            
    throw;
        }
    }

    /// <summary>
    /// 加载主程序集所引用的程序集
    /// </summary>
    static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
    {
        Assembly assembly 
    = null;
        
    try
        {
             
    string dllName = args.Name.Split('')[0];
             
    if (dllName.StartsWith("XXX.Common"))
             {
                 assembly 
    = Assembly.Load(Properties.Resources.XXX_Common);
             }
        }
        
    catch (Exception) 
        {
            MessageBox.Show(
    "加载数据集" + args.Name + "时出错!");
        }
        
    return assembly;
    }
  • 相关阅读:
    DI 之 3.4 Bean的作用域(捌)
    DI 之 3.3 更多DI的知识(柒)
    MySQL中基本的多表连接查询教程
    DI 之 3.3 更多DI的知识(陆)
    字符串(string)转json
    如何查看连接mysql的ip地址
    DI 之 3.2 循环依赖 (伍)
    DI 之 3.1 DI的配置使用(肆)
    IoC 之 2.3 IoC的配置使用(叁)
    MySQL for Windows 解压缩版配置安装
  • 原文地址:https://www.cnblogs.com/anjou/p/1821643.html
Copyright © 2011-2022 走看看