【发布时间】:2017-01-07 17:01:42
【问题描述】:
我有以下接口和实现:
public interface INew
{
string TestString { get; }
}
public class PurchaseOrder : INew
{
public string OrderNo { get; set; }
public string TestString
{
get { return "This is a test string"; }
}
}
我正在尝试使用以下代码反映PurchaseOrder 对象的OrderNo 部分:
var props = p.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.FlattenHierarchy);
foreach (var prop in props)
{
Console.WriteLine(prop.Name);
}
我的输出也返回了TestString 属性。我已经搜索了排除已实现接口成员的方法,但只能找到包含它的项目。谁能告诉我如何排除这些项目?
【问题讨论】:
-
我认为你可以使用Type.GetInterfaceMap Method。但可能你必须小心层次结构。
标签: c# reflection interface