我試圖在ViewModel導航到時將服務注入。儘管我在Brian Lagunas的博客,示例代碼等上看過這方面的參考資料,但似乎並不正確。Xamarin Forms使用Unity註冊客戶服務以查看模型構造函數
鑑於我App.cs
public class App : PrismApplication
{
protected override void OnInitialized()
{
NavigationService.NavigateAsync ("SignInPage", animated: false);
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<SignInPage>();
Container.RegisterType<IUserAuthentication, UserAuthenticationService>();
}
}
注:using
報表。IUserAuthentication和UserAuthenticationService命名空間到位。
SignInPageViewModel.cs
private INavigationService _navigationService;
private IUserAuthentication _userAuthenticationService;
public SignInPageViewModel(INavigationService navigationService, IUserAuthentication userAuthenticationService)
{
_navigationService = navigationService;
_userAuthenticationService = userAuthenticationService;
}
Container.RegisterType
似乎並不接受通用的。我見過的所有例子似乎都支持它,但我得到以下錯誤。
The non-generic method 'IUnityContainer.RegisterType(Type, Type, string, LifetimeManager, params InjectionMember[])' cannot be used with type arguments
這是一個構建錯誤。
軟件包信息
- 使用Prism.Unity.Forms V6.2.0-pre5
- Prism.Forms 6.1.0-pre5
- Prism.Core 6.1.0
- Xamarin.Forms 2.3 .0.46-PRE3
- 統一4.0.1
Gah!謝謝。仍然是.NET新手。我認爲(錯誤地)認爲Prism的Unity擴展會將其餘的Unity內容拉入。 有時,找到我想要的使用語句是最具挑戰性的一點。 – Danomite