public static List<person> ListPerson = new List<ReflectGetData.person>();
static void Main(string[] args)
{
person person1 = new ReflectGetData.person();
person person2 = new ReflectGetData.person();
person1.name = "小王";
person1.age = "15";
person2.name = "小张";
person2.age = "26";
ListPerson.Add(person1);
ListPerson.Add(person2);
string result = GetData("ReflectGetData", "Program", "ListPerson", "name", "小王", "age");
Console.WriteLine(result);
Console.ReadKey();
}
public static string GetData(string CacheNameSpace, string ClassName, string CacheName, string PropertyName, string value, string CheckPropertyName)
{
string result = string.Empty;
Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
Type type = assembly.GetType(CacheNameSpace + "." + ClassName);//命名空间名 + 类名
object obj = Activator.CreateInstance(type, true);
object variableValue = obj.GetType().GetField(CacheName).GetValue(obj);
IEnumerable<object> list = variableValue as IEnumerable<object>;
foreach(var item in list)
{
if (value.Equals(item.GetType().GetProperty(PropertyName).GetValue(item, null).ToString()))
{
result = item.GetType().GetProperty(CheckPropertyName).GetValue(item, null).ToString();
}
}
return result;
}