我有一个基类,它从另一个基类继承属性,并添加一个新基类,如下所示:
public class DataSourceWithIntervalBase : DataSourceBase
{
[MaxLength(100)]
[Display(Name = "Interval")]
public virtual string Interval1 { get; set; }
}
没有什么特别的DataSourceBase
,它只是有一些我需要允许用户编辑的属性。
DataSourceWithIntervalBase
但是,进一步被其他类继承。出于 UI 目的,它们都非常相似,除了它们的Display
属性。
这是其中一个类,例如:
public class SqlServerDataSource : DataSourceWithIntervalBase
{
public SqlServerDataSource()
{
FeedType = FeedType.SqlServer;
}
[Required]
[MaxLength(500)]
[Display(Name = "Connection String")]
public override string Url { get; set; }
[MaxLength(100)]
[Display(Name = "Table Name")]
public override string Interval1 { get; set; }
}
你可以看到我在这里覆盖了 2 个属性。Url
, 发现于DataSourceBase
, 和Interval1
, 发现于DataSourceWithIntervalBase
。
使用此继承时似乎没有任何问题。它确实有效。但是,该Display
属性不会被覆盖。Url
ofDataSourceBase
实际上没有,但即使在编辑器视图中使用时也没有考虑到它。该Interval1
属性被标记如下:
Interval
那么如何强制我的继承类正确覆盖Display
我的基类的属性呢?