之前嘗試很多次都失敗,這次終於成功註冊Controller、Service與Repository了,來記錄一下設定檔。
- AutofacConfig.cs
/// <summary>
/// DI設定檔
/// </summary>
public class AutofacConfig
{
/// <summary>
/// 註冊DI注入物件資料
/// </summary>
public static void Register()
{
// 容器建立者
ContainerBuilder builder = new ContainerBuilder();
// 註冊Controllers
builder.RegisterControllers(Assembly.GetExecutingAssembly());
// 註冊Service
builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
.Where(t => t.Name.EndsWith("Service"))
.AsSelf();
// 註冊Repository
builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
.Where(t => t.Name.EndsWith("Repository"))
.AsSelf();
// 建立容器
IContainer container = builder.Build();
// 解析容器內的型別
AutofacDependencyResolver resolver = new AutofacDependencyResolver(container);
// 建立相依解析器
DependencyResolver.SetResolver(resolver);
}
}
- Global.asax
protected void Application_Start()
{
//加入這行
AutofacConfig.Register();
}