获取程序集信息
/// <summary> /// 返回程序集的Title /// </summary> /// <param name="assembly">程序集</param> /// <returns>Title</returns> public static string GetAssemblyTitle(Assembly assembly) { string title = GetAssemblyInfo<AssemblyTitleAttribute>(assembly ); if(string.IsNullOrEmpty(title)) { return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); } return title; } /// <summary> /// 返回程序集的版本信息 /// </summary> /// <param name="assembly">程序集</param> /// <returns>版本信息</returns> public static string GetAssemblyVersion(Assembly assembly) { return assembly.GetName().Version.ToString(); } /// <summary> /// 返回程序集的文本说明 /// </summary> /// <param name="assembly">程序集</param> /// <returns>文本说明</returns> public static string GetAssemblyDescription(Assembly assembly) { return GetAssemblyInfo<AssemblyDescriptionAttribute>(assembly); } /// <summary> /// 返回程序集的产品名 /// </summary> /// <param name="assembly">程序集</param> /// <returns>产品名</returns> public static string GetAssemblyProduct(Assembly assembly) { return GetAssemblyInfo<AssemblyProductAttribute>(assembly); } /// <summary> /// 返回程序集的版权 /// </summary> /// <param name="assembly">程序集</param> /// <returns>版权</returns> public static string GetAssemblyCopyright(Assembly assembly) { return GetAssemblyInfo<AssemblyCopyrightAttribute>(assembly); } /// <summary> /// 返回程序集的公司名称 /// </summary> /// <param name="assembly">程序集</param> /// <returns>公司名称</returns> public static string GetAssemblyCompany(Assembly assembly) { return GetAssemblyInfo<AssemblyCompanyAttribute>(assembly); } /// <summary> /// 获取程序集的相关信息 /// </summary> /// <typeparam name="TAttribute">特性类型</typeparam> /// <param name="assembly">程序集</param> /// <returns>返回的信息。如果没有找到,则返回特性类型名称;如果不具有相关特性,则返回空白字符串</returns> public static string GetAssemblyInfo<TAttribute>(Assembly assembly)where TAttribute : Attribute { Type type =typeof(TAttribute); object[] attributes = assembly.GetCustomAttributes(type, false); if(attributes!=null&& attributes.Length>0) { PropertyInfo[] propertyInfos = type.GetProperties(); foreach (PropertyInfo property in propertyInfos) { if (typeof(string).Equals(property.PropertyType)) { return property.GetValue(attributes[0]).ToString(); } } } return string.Empty; }
凡所有相,皆是虚妄。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器