Я создаю основной движок для своего блога и хотел бы иметь возможность очень легко его расширять.
На данный момент мой код выглядит так:
[Table(Name = "dbo.ContentItem")]
[InheritanceMapping(Code = "MyNameSpace.Items.SysRoot", Type = typeof(SysRoot), IsDefault = true)]
[InheritanceMapping(Code = "MyNameSpace.Items.SysRecycleBin", Type = typeof(SysRecycleBin))]
public partial class ContentItem : ICloneable, INotifyPropertyChanging, INotifyPropertyChanged {
// some code here
}
Приведенный выше код находится в моем основном проекте, и я хотел бы отобразить новые типы страниц в своем проекте блога, например, добавив атрибут наследования в такой класс:
[InheritanceMapping(Code = "MyNamespace.Blog.Items.BlogPostContainer", Type = typeof(BlogPostConntainer))]
public partial class BlogPostContainer : ContentItem {
// some code here
}
Это не работает, поэтому мне интересно, есть ли у кого-нибудь решение этой проблемы? Может быть, можно записать сопоставление во внешний XML-файл, чтобы заставить работать наследство между проектами?