C#自定义Attribute值的获取与优化
作者:网络转载 发布时间:[ 2015/11/11 13:15:08 ] 推荐标签:.NET 测试开发技术
C#自定义Attribute值的获取是开发中会经常用到的,一般我们的做法也是用反射进行获取的,代码也不是很复杂。
1、首先有如下自定义的Attribute
1 [AttributeUsage(AttributeTargets.All)]
2 public sealed class NameAttribute : Attribute
3 {
4 private readonly string _name;
5
6 public string Name
7 {
8 get { return _name; }
9 }
10
11 public NameAttribute(string name)
12 {
13 _name = name;
14 }
15 }
2、定义一个使用NameAttribute的类
1 [Name("dept")]
2 public class CustomAttributes
3 {
4 [Name("Deptment Name")]
5 public string Name { get; set; }
6
7 [Name("Deptment Address")]
8 public string Address;
9 }
3、获取CustomAttributes类上的"dept"也很简单了
1 private static string GetName()
2 {
3 var type = typeof(CustomAttributes);
4
5 var attribute = type.GetCustomAttributes(typeof(NameAttribute), false).FirstOrDefault();
6
7 if (attribute == null)
8 {
9 return null;
10 }
11
12 return ((NameAttribute)attribute).Name;
13 }
以上代码可以简单的获取,类上的Attribute的值了,但是需求往往不是这么简单的,不仅要获取类头部Attribute上的值,还要获取字段Address头部Attribute上的值。有的同学可能觉得这还不简单呀,直接上代码
1 private static string GetAddress()
2 {
3 var type = typeof (CustomAttributes);
4
5 var fieldInfo = type.GetField("Address");
6 if (fieldInfo == null)
7 {
8 return null;
9 }
10
11 var attribute = fieldInfo.GetCustomAttributes(typeof(NameAttribute), false).FirstOrDefault();
12
13 if (attribute == null)
14 {
15 return null;
16 }
17
18 return ((NameAttribute) attribute).Name;
19 }
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11