zoukankan      html  css  js  c++  java
  • C#基础之Assembly 当前项目的程序集GetAssemblies

    C#基础之Assembly

    查找当前项目所有程序集的方法System.AppDomain.CurrentDomain.GetAssemblies();

    List<Type> TypeItemList = new List<Type>();
                //var ResultTypeList = Assembly.GetEntryAssembly();
                //if (ResultTypeList == null)
                //{
                //    ResultTypeList = Assembly.GetCallingAssembly();
                //    var ItemList = ResultTypeList.GetReferencedAssemblies().Where(p => p.GetType() == typeof(BaseService));                
                //}
                Assembly[] AssbyCustmList = System.AppDomain.CurrentDomain.GetAssemblies();
                foreach (Assembly assItem in AssbyCustmList)
                {
                    TypeItemList.AddRange(assItem.GetTypes().Where(x => x.BaseType == typeof(BaseService)).ToList());
                }
                //IEnumerable<Type> TypeItemList = CurType.Assembly.GetExportedTypes().Where(x => x.BaseType == typeof(BaseService)).ToList();
                //IEnumerable<Type> TypeItemList = ResultTypeList.GetTypes().Where(x => x.BaseType == typeof(BaseService)).ToList();
                BaseService TarService = null;
                foreach (Type typeitem in TypeItemList)
                {
                    if (_Reporttory.Count(p => p.GetType() == typeitem) == 0)
                    {
                        TarService = (Activator.CreateInstance(typeitem) as BaseService);
                    }
                    else
                    {
                        TarService = _Reporttory.First(p => p.GetType() == typeitem);
                    }
                    TarService.Start();
                }
    
    
    static void ShowAssemblyDetail(Assembly assembly, string name = "")
            {
                Console.WriteLine("============ 
    ");
                Console.WriteLine("FullName:" + assembly.FullName);
                Console.WriteLine("CodeBase:" + assembly.CodeBase);
                Console.WriteLine("EscapedCodeBase:" + assembly.EscapedCodeBase);
                Console.WriteLine("GlobalAssemblyCache:" + assembly.GlobalAssemblyCache);
                Console.WriteLine("HostContext:" + assembly.HostContext);
                Console.WriteLine("ImageRuntimeVersion:" + assembly.ImageRuntimeVersion);
                Console.WriteLine("IsDynamic:" + assembly.IsDynamic);
                Console.WriteLine("IsFullyTrusted:" + assembly.IsFullyTrusted);
                Console.WriteLine("Location:" + assembly.Location);
                Console.WriteLine("ReflectionOnly:" + assembly.ReflectionOnly);
                Console.WriteLine("SecurityRuleSet:" + assembly.SecurityRuleSet);
            }

     

  • 相关阅读:
    常用的正则表达式
    VScode格式化代码,开启ESlint代码检测方法,eslint代码配置
    git 常用的操作
    vscode 格式化的时候自动添加分号怎么去除
    echarts渐变色实现方法
    echart 柱状图 数值较小的时候,文字显示不全
    iview的Modal在提交表单时确认按钮loading状态冲突问题解决方案
    vue.js动态获取菜单
    12.18 webSocket消息推送
    12.18 微信模板消息推送
  • 原文地址:https://www.cnblogs.com/yyzyou/p/Assembly.html
Copyright © 2011-2022 走看看