鉴于班级':
public abstract class AbstractEntity
{
public virtual Guid Id { get; private set; }
}
public class Entity
{
public virtual Guid Id { get; private set; }
}
属性'Id'的PropertyInfo。
调用方法时:
PropertyInfo.GetAccessors()
当类不抽象(实体)时,它返回get-method和set-method, 但只有当类是抽象的时才使用get方法(AbstractEntity)。
这是为什么?还有另一种方法从具有私有集的属性中获取set方法吗?
答案 0 :(得分:2)
如果你想获得集合的MethodInfo,你可以。这并不意味着你可以实际使用它,凯文在他的回答中指出。
Type t = typeof(AbstractEntity);
MethodInfo[] mi = t.GetProperty("Id").GetAccessors(true);
答案 1 :(得分:1)
在抽象类中,您无法实例化它。除非反思,没有任何东西可以称之为私人制定者。在反射中,您仍然需要实例化类(不包括静态项)来访问属性调用方法等,这不能在抽象类中完成。能够访问它不会给你任何东西,事实上没有什么可以访问它来使用它。