【发布时间】:2014-09-04 16:46:31
【问题描述】:
是否可以使用基类在派生类中的覆盖属性上看到某个属性? 假设我有一个 Person 类和一个从 Person 继承的 PersonForm 类。此外,PersonForm 有一个属性(假设是 MyAttribute),用于它的一个属性,该属性是从基类 Person 覆盖的:
public class Person
{
public virtual string Name { get; set; }
}
public class PersonForm : Person
{
[MyAttribute]
public override string Name { get; set; }
}
public class MyAttribute : Attribute
{ }
现在我的项目中有一个通用的保存函数,它会在某一时刻接收 Person 类型的对象。 问题是:在使用 Person 对象时,我可以从派生的 PersonForm 中看到 MyAttribute 吗?
在现实世界中,这发生在一个 MVC 应用程序中,我们使用 PersonForm 作为显示表单的类,使用 Person 类作为 Model 类。当谈到 Save() 方法时,我得到了 Person 类。但属性在 PersonForm 类中。
【问题讨论】:
标签: c# attributes