设置枚举属性,并且获取到属性

通过枚举来获取属性,和通过枚举的值来获取属性

public enum TestEmun
{
[Remark("AAA")]
aaa=1,
[Remark("BBB")]
bbb=2,
[Remark("CCC")]
ccc=3
}
public void GetEnumName()
{
//需要引用 Lib.DataModel.SysEnum 命名空间才可以使用 扩展方法
string name = TestEmun.aaa.GetRemark();
Console.WriteLine(name);
/*
name 值为 AAA
*/
}

public void GetName()
{
var name=1.GetEnumRemark(typeof(TestEmun));
Console.WriteLine(name);
}
/// <summary>
/// 备注特性
/// </summary>
public class RemarkAttribute : Attribute
{
private string m_remark;
public RemarkAttribute(string remark)
{
this.m_remark = remark;
}
/// <summary>
/// 备注
/// </summary>
public string Remark
{
get { return m_remark; }
set { m_remark = value; }
}
/// <summary>
/// 获取枚举的备注信息
/// </summary>
/// <param name="val">枚举值</param>
/// <returns></returns>
public static string GetEnumRemark(Enum val)
{
Type type = val.GetType();
FieldInfo fd = type.GetField(val.ToString());
if (fd == null)
return string.Empty;
object[] attrs = fd.GetCustomAttributes(typeof(RemarkAttribute), false);
string name = string.Empty;
foreach (RemarkAttribute attr in attrs)
{
name = attr.Remark;
}
return name;
}
}
/// <summary>
/// 枚举扩展类
/// </summary>
public static class EnumExtension
{
/// <summary>
/// 获取枚举的备注信息
/// </summary>
/// <param name="em"></param>
/// <returns></returns>
public static string GetRemark(this Enum em)
{
Type type = em.GetType();
FieldInfo fd = type.GetField(em.ToString());
if (fd == null)
return string.Empty;
object[] attrs = fd.GetCustomAttributes(typeof(RemarkAttribute), false);
string name = string.Empty;
foreach (RemarkAttribute attr in attrs)
{
name = attr.Remark;
}
return name;
}

/// <summary>
/// 通过枚举值来获取枚举的备注信息
/// </summary>
/// <param name="val"></param>
/// <param name="T"></param>
/// <returns></returns>

public static string GetEnumRemark(this int val,Type T)
{
Type type=T;
string name = Enum.GetName(type, val);
if(name==null)
return string.Empty;
FieldInfo fd=type.GetField(name);
object[] attrs = fd.GetCustomAttributes(typeof(RemarkAttribute), false);
string s = string.Empty;
foreach (RemarkAttribute attr in attrs)
{
s = attr.Remark;
}
return s;
}
}

来源:http://blog.csdn.net/xxj_jing/article/details/8556780

时间: 2024-12-10 03:30:10

设置枚举属性,并且获取到属性的相关文章

CSP介绍、以及使用CryptoAPI枚举CSP并获取其属性

CSP,全名为"加密服务提供者(Cryptographic Service Provider)",是微软定义的一套密码服务API.目前常用的密码规范或者标准有3套:CSP,PKCS#11和国密标准.前两者主要是为RSA算法提供服务,当然PKCS#11最新的扩展也开始支持ECC算法.而国家密码管理制定的国密标准,主要提供SM2(实际上也是ECC)服务,当然国密标准同时支持RSA,不过大多数情况下RSA的应用还是使用CSP和PKCS#11来实现. 一.CSP为一个独立的密钥服务模块 CSP

【转】C#通过Expression获取指定属性的名称

原文:http://www.cnblogs.com/powerwu/articles/3393582.html 大家所熟悉的是通过对象属性来访问该属性的值,或是由字符串通过反射来获取属性,并取值.今天我要说的是,通过对象的属性来获取该属性的名称,其意义在于拼接字符串时显示该名称,特别是自行拼接 SQL语句.下列代码是个简单测试类: public class TestClass { public int ID { get; set; } public string Name { get; set;

C#类的属性遍历及属性值获取

1.定义一个类 public class Person { public string Name { get; set; } public int ID { get; set; } } 2.获取属性 方法一.定义一个类的对象获取 Person p = new Person(); foreach (System.Reflection.PropertyInfo info in p.GetType().GetProperties()) { Console.WriteLine(info.Name); }

js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>

Webkit IDL中自定义[命名]属性的获取(Getter)以及设置(Setter)函数

一.自定义命名属性的获取(Getter)以及设置(Setter)函数: [CustomNamedGetter](i), [CustomNamedSetter](i) 命名属性的W3C链接如下:?The spec of named properties (注意,下面描述的webkit行为和W3C的规范是不同的) 总结: [CustomNamedGetter] 或者 [CustomNamedSetter] 允许你为命名属性的getter或者setter编写自己的绑定函数. 用法如下: [ Custo

js+jquery动态设置/增加/删除/获取元素属性的两种方法集锦对比(动态onclick属性设置+动态title设置)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>

jQuery -&gt; 获取/设置/删除DOM元素的属性

Sum square difference Problem 6 The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square of the sum of the first ten natural numbers is, (1 + 2 + ... + 10)2 = 552 = 3025 Hence the difference between the sum of

jQuery -&amp;gt; 获取/设置/删除DOM元素的属性

jQuery的属性操作很easy,以下以一个a元素来说明属性的获取/设置/删除操作 <body> <a>jquery.com</a> </body> 加入?属性 $('a').attr('href', 'http://www.jquery.com') 加入?多个属性 $('a').attr({'href':'http://www.jquery.com', 'title':'jquery.com'}) 获取属性 $('a').attr('href') clas

关于JS(原生js+jq)中获取、设置或者删除元素属性和获取元素值

一.JS获取.设置或者删除元素属性 原生js: $("要获取属性class/id名").getAttribute("属性"); $("要设置属性class/id名").setAttribute("属性","属性值"); $("要删除属性class/id名").removeAttribute("属性"); jq: $("要获取属性class/id名"