[英]MVC Plugin Architecture and Entityframework
我正在構建一個應用程序,如下所示;
數據庫中只有一個表,該域作為基礎實體(Ipage),當公眾查看時,該實體代表一個html頁面。 繼承是一個實體(IPageBuilder),其中包含構建頁面admin視圖所需的信息。 這個概念是在管理端預渲染頁面,並將所有內容存儲在一個表中。 下面是這兩個實體的接口類:
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列。 那么完成這項任務的最佳方法是什么? 提前致謝。
另外,我將表中的列設置為以下格式:
我在用
自從我問了這個問題以來已經過去了一段時間,所以我想我會嘗試自己回答。 基本上,我轉向NHibernate來解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.