[C#] 常用工具类——应用程序属性信息访问类
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace Utils
{
/// <summary>
/// <para> </para>
/// 常用工具类——应用程序属性信息访问类
/// <para> -------------------------------------------</para>
/// <para> GetAssemblyTitle:获取应用程序集的标题</para>
/// <para> GetAssemblyProduct:获取应用程序产品名称</para>
/// <para> GetAssemblyVersion:获取应用程序版本</para>
/// <para> GetAssemblyDescription:获取应用程序说明</para>
/// <para> GetAssemblyCopyright:获取应用程序版权信息</para>
/// <para> GetAssemblyCompany:获取应用程序公司名称</para>
/// <para> GetAssemblyAppFullName:获取应用程序显示名称</para>
/// </summary>
public class AssemblyHelper
{
#region 获取应用程序集的标题
/// <summary>
/// 获取应用程序集的标题
/// </summary>
/// <returns></returns>
public static string GetAssemblyTitle()
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
if (attributes.Length > 0)
{
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
if (titleAttribute.Title != "")
{
return titleAttribute.Title;
}
}
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
}
#endregion
#region 获取应用程序产品名称
/// <summary>
/// 获取应用程序产品名称
/// </summary>
/// <returns></returns>
public static string GetAssemblyProduct()
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
if (attributes.Length == 0)
{
return "";
}
return ((AssemblyProductAttribute)attributes[0]).Product;
}
#endregion
#region 获取应用程序版本
/// <summary>
/// 获取应用程序版本
/// </summary>
/// <returns></returns>
public static string GetAssemblyVersion()
{
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
#endregion
#region 获取应用程序说明
/// <summary>
/// 获取应用程序说明
/// </summary>
/// <returns></returns>
public static string GetAssemblyDescription()
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
if (attributes.Length == 0)
{
return "";
}
return ((AssemblyDescriptionAttribute)attributes[0]).Description;
}
#endregion
#region 获取应用程序版权信息
/// <summary>
/// 获取应用程序版权信息
/// </summary>
/// <returns></returns>
public static string GetAssemblyCopyright()
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
if (attributes.Length == 0)
{
return "";
}
return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
}
#endregion
#region 获取应用程序公司名称
/// <summary>
/// 获取应用程序公司名称
/// </summary>
/// <returns></returns>
public static string GetAssemblyCompany()
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
if (attributes.Length == 0)
{
return "";
}
return ((AssemblyCompanyAttribute)attributes[0]).Company;
}
#endregion
#region 获取应用程序显示名称
/// <summary>
/// 获取应用程序显示名称
/// </summary>
/// <returns></returns>
public static string GetAssemblyAppFullName()
{
return Assembly.GetExecutingAssembly().FullName.ToString();
}
#endregion
}
}
[C#] 常用工具类——应用程序属性信息访问类的更多相关文章
- C#箴言之用属性来访问类的私有成员
在程序中,难免要访问某个对象的私有成员.那么以前实现这类功能的方法有两种,第一种方法最简单,就是把成员访问符从“private”改为“public”即可:而另一个就是提供公有的成员访问函数来进行访问. ...
- c# 自定义公共类CallFunction-调用函数信息帮助类
/// <summary> /// 调用函数信息 /// </summary> public class CallFunction { /// <summary> ...
- 【很变态】PHP类实例化对象竟然可以访问类的“静态(static)方法”!!!
之前发现一个PHP的变态问题:PHP中静态(static)调用非静态方法详解 这次看了下 ThinkPHP 的源码 function.inc.php ,里面有个函数: /** * 取得对象实例 支持调 ...
- PHP如何定义类及其成员属性与操作
1.类的定义: 类的关键字定义使用class 1.定义一个空类 Class Person{}; 2.定义一个有成员属性和操作的类 Class Person{ //成员属性 $name = ' ...
- 2.设计模式常用的UML图分析(用例图、类图与时序图)
1-用例图 概述 展现了一组用例.参与者以及他们之间的关系. 用例图从用户角度描述系统的静态使用情况,用于建立需求模型. 用例特征 保证用例能够正确捕捉功能性需求,判断用例是否准确的依据. 用例是动宾 ...
- python进阶之类常用魔法方法和魔法属性
前言 前面我们总结过了python的关键字.运算符.内置函数.语法糖等与python魔法方法之间的关系,现在我们更细一点,看看python的面向对象编程有哪些常用的魔法属性和魔法方法. 魔法属性 对于 ...
- [javaSE] 反射-获取类的成员属性和构造方法
成员属性和构造方法皆为对象,通过Class对象的方法可以得到 package com.tsh.reflect; import java.lang.reflect.Constructor; import ...
- PHP中如何定义类及其成员属性与操作
1.类的定义: i. 类的关键字定义使用class 1.定义一个空类 Class Person{}; 2.定义一个有成员属性和操作的类 Class Person{ 成员属性........ 操 ...
- Python类的特殊属性
Python中的特殊属性 定义如下类: class Foo(object): """Foo class definition""" 类的特殊 ...
随机推荐
- E8.ITSM IT运维服务管理系统
一. IT运维面临问题 随着企业信息化项目若干年以来的建设积累,IT资产日趋庞大,以及内外部监管部门对IT运维的要求也越来越严格规范,业务部门对企业的IT运维管理也提出了更高的要求. IT ...
- Effective Java之并发
并发本身有两个概念:1.互斥性:2.可见性: 先来说一下可见性,就是让共享的变量在进程间可以及时获得最新版本的数据:这里比较简单的方式是为可能被并发修改的全局变量添加上volatile关键字:vola ...
- Java Fx-安装E(FX)CLIPSE IDE
安装E(FX)CLIPSE IDE 本文主要介绍如何在Eclipse Mars 4.5.0版本上安装e(fx)clipse. 本文中的介绍和截图使用了纯净安装的为RCP和RAP开发者准备的Eclips ...
- python中self.__class__
1. python中的self python中的self就相当于C++中的this指针也就是指向对象本身的指针self.name = name 就是当前对象的成员变量name赋值为name. 2.py ...
- BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
Description 混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S ...
- HTML5 知识点
HTML5 知识点 (1)语义化标记 <header>,<footer>,<nav>,<article>,<section> ...
- 好吧,如果一定要RESTFUL的DJANGO
看看人家写的VIEWSET, 然后用REQUESTS测试一下. from rest_framework import viewsets from rest_framework.decorators i ...
- CycleScrollView实现轮播图
// // CycleScrollView.h // PagedScrollView // // Created by 李洪强 on 16-1-23. // Copyright (c) 201 ...
- OA学习笔记-009-岗位管理的CRUD
一.分析 Action->Service->Dao CRUD有功能已经抽取到BaseDaoImpl中实现,所以RoleDaoImpl没有CRUD的代码,直接从BaseDaoImpl中继承 ...
- SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题
转:http://blog.csdn.net/miragesky2049/article/details/7204882 SharePoint2010沙盒解决方案基础开发--关于TreeView树形控 ...