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("============ \n"); 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); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?