3
我有一個包含Autofac與類庫
-MVC project
-WCF Project
-Service library
-Model (Entity Framework)
的MVC項目從Web服務讓所有的數據的C#解決方案。 而WCF服務正在從服務庫中獲取數據。
我現在試圖用Autofac來實現DI。
我到目前爲止所做的是在服務庫中創建樹類。
public class ServiceModule : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterAssemblyTypes(Assembly.Load("Foot.Service"))
.Where(t => t.Name.EndsWith("Service"))
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
}
}
public class EFModule : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType(typeof(FootContext)).As(typeof(IContext)).InstancePerLifetimeScope();
}
}
public class Init
{
public Init()
{
//Autofac Configuration
var builder = new Autofac.ContainerBuilder();
builder.RegisterModule(new ServiceModule());
builder.RegisterModule(new EFModule());
var container = builder.Build();
}
}
這是正確的路要走嗎?然後調用WCF庫中的Init()?
我應該爲WCF服務做同樣的事情嗎?
Regards
感謝您的回答。所以我展示的代碼應該在WCF服務中?在MVC項目中,用於WCF服務的DI? – determig
是的,因爲這種情況下的WCF服務就是應用程序。 –
我應該什麼時候從WCF調用init()?每次打電話?或者,如果我創建它作爲一個Windows服務,然後開始的Web服務? – determig