我一直在尝试在实现接口的类中获取属性。我的设计如下,
interface ABC
{
string Name { get; set; }
}
public class BCD:ABC
{
public string Name { get; set; }
public string Age{ get; set; }
public string Height{ get; set; }
public string Weight{ get; set; }
}
现在使用Reflection我试过了,
main()
{
ABC abcObj = new BCD();
var typeOfObject = typeof(abcObj);
var objectProperties = typeOfObject.GetProperties(BindingFlags.Public|BindingFlags.Instance);
}
我在objectproperties中得到的是ABC类中的属性。但是我也需要BCD类的属性。
有人可以为此提供帮助吗?
答案 0 :(得分:2)
而不是使用typeof
(因为它适用于类/接口名称),请尝试
var typeOfObject = abcObj.GetType();
获取实例的类型。
当我跑步时
ABC abcObj = new BCD();
var objectProperties = abcObj.GetType()
.GetProperties(BindingFlags.Public | BindingFlags.Instance);
for (int i = 0; i < objectProperties.Length; i++)
{
Console.WriteLine("{0} ({1})", objectProperties[i].Name, objectProperties[i].PropertyType);
}
我在控制台中收到以下内容:
名称(System.String)
年龄(System.String)
高度(System.String)
重量(System.String)