簡體   English   中英

如何使用 AutoFac 從變量類型解析服務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM