[英]How to resolve service with AutoFac from type of a variable
我有一個 class 方法
public Task ServiceResolver(ILifetimeScope scope, IViewModel viewModel)
{
Type type = viewModel.GetType();
scope.Resolve<type>();
}
是否可以解決類似於使用 GetType 或 typeof() 的服務,這不起作用,但我認為是否有其他選擇。
或者也許還有另一種更好的方法來解決 class 之外的服務。 問題是我有多個視圖模型,如果我想在視圖模型中使用其他已解決的視圖模型,我必須在啟動應用程序之前參考 AutoFac 容器或解決所有這些視圖模型。
您應該能夠將類型直接傳遞給Resolve
:
public Task ServiceResolver(ILifetimeScope scope, IViewModel viewModel)
{
Type type = viewModel.GetType();
var resolvedInstance = (IViewModel)scope.Resolve(type);
}
Resolve
的重載返回object
,因此您需要在使用它之前對其進行轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.