1.情景
有一个对象,属性是固定的,需要给另一个对象用,但是属性的值会有不同,属性的值会根据不同的场景采用不同的值,但是这些值需要从excel文件中获取,获取的方法就是对应表格中的一个key键。
问题点:对象的属性固定,值不同,值不能直接赋值,需要通过一个key去excel中取不同的值。
不同的类,取值的key是不同的,但是属性需要相同,因为使用该对象的接口使用方式相同。
设计方法:用重载属性的方式来区分key,给每个不同的类的属性添加不同的特性,代码key(如下的特性值value相当于key,因这里只想确认属性是否支持重载,所有只是表示一下,未取excel中真正取值)
2.代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace 特性的所属属性
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("特性的所属属性");
A a = new A();
FieldInfo[] fieldInfos = a.GetType().GetFields();
foreach (FieldInfo fieldInfo in fieldInfos) {
Test3 testAtrribute = fieldInfo.GetCustomAttribute<Test3>();
Console.WriteLine(fieldInfo.Name);
Console.WriteLine(testAtrribute.Value);
}
Console.ReadKey();
}
}
public class A:B {
[Test3(Value =5)]
public int a;
}
public class B {
public int b;
}
/// <summary>
///
/// </summary>
public class Test3 : Attribute
{
public int Value { set; get; }
}
}
3. 运行结果
属性是否可以重载
a:1
b:2
a:3
b:4