[英]C# MVC5 AutoFac IoC - Resolve based on requesting class
我正在嘗試在MVC5項目中配置Autofac,以基於請求接口的類返回接口的特定實現。
我使用Laravel框架在PHP上做了很多事情,該框架提供了如下解決方案:
$this->app->when(PhotoController::class)
->needs(Filesystem::class)
->give(function () {
return Storage::disk('local');
});
到目前為止,我的Google搜尋不足了,大部分答案都建議我注入一個Factory(稱為Container),或者注入它自身的Container,然后從那里獲取所需的服務。
真的沒有辦法實現與上述相似的東西嗎?
有一些選項可以注冊條件依賴,Autofac最簡單的方法就是命名注冊(AFAIK):
builder.Register(c => new DiskStorage()).Named<IStorage>("disk");
builder.Register(c => new PhotoController(c.ResolveNamed<IStorage>("disk")));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.