我正在构建一个应用程序如下;
数据库中只有一个表,域作为基本实体(Ipage),当公众查看时,它代表一个 html 页面。继承它是一个实体 (IPageBuilder),它包含构建页面、管理视图所需的信息。这个概念是在管理端预渲染页面并将所有内容存储在一个表中。下面是这两个实体的接口类:
public interface IPage
{
string BodyPreRender { get; set; }
string ExcerptPreRender { get; set; }
int ID { get; set; }
bool IsPublished { get; set; }
string Key { get; set; }
string MetaTagsPreRender { get; set; }
int Order { get; set; }
string PageKey { get; set; }
}
public interface IPageBuild : IPage
{
string Author { get; set; }
string CreatedBy { get; set; }
DateTime CreatedOn { get; set; }
string Description { get; set; }
string EditListItemPreRender { get; set; }
string Html { get; set; }
string Keywords { get; set; }
string Language { get; set; }
string MetaDescription { get; set; }
DateTime? ReleasedOn { get; set; }
string Title { get; set; }
int Version { get; set; }
}
我创建了一个插件管理器,它将发现一个包含插件描述符接口的 dll 并创建一个插件列表以供在应用程序中使用。这是插件描述符接口:
internal interface IPluginDescriptor
{
Assembly Assembly { get; }
string Author { get; }
string AuthorUrl { get; }
Type DomainType { get; }
PlugInFactories Factories { get; }
void Install();
string Key { get; }
string MenuName { get; }
string Name { get; }
string PageKey { get; }
PluginRoute Route { get; }
string SupportUrl { get; }
void Uninstall();
Version Version { get; }
}
我想做的是在插件中创建一个域对象,它基于基本页面构建器类,从而允许插件创建和存储它想要的任何网页,例如:
public class Foo : IPageBuild
{
public string FooInfo { get; set; }
}
在应用程序启动中,我想在我的插件描述符中运行一个方法,调用它 install(),它将检查数据表并查看它是否有 FooInfo 列。那么完成这项任务的最佳方法是什么?提前致谢。
此外,我已将表中的列设置为:
- Page_BodyPreRender,
- Page_ExcerptPreRender,
- ETC。,
- Foo_FooInfo
我在用
- .Net 框架 4.0
- 实体框架 4.3.1.0
- System.Data.SqlServerCe.Entity4.0.0.0
- System.Web.Mvc 3.0.0.0