LoginService
MvvmCross (Mvx) プラグインで定義されたとそのインターフェイスがあります。
このプラグインを使用する Mvx アプリケーションのコア PCL は、次のApp.cs
ように登録するために使用します。
CreatableTypes(typeof(LoginService).GetTypeInfo().Assembly)
.EndingWith("Service")
.AsInterfaces()
.RegisterAsLazySingleton();
次に、CustomAppStart
クラスを使用してアプリを起動し、アプリを起動する ViewModel を決定します。
RegisterAppStart(new CustomAppStart(Mvx.Resolve<ILoginService>()));
CustomAppStart を次のように定義します。
public CustomAppStart(ILoginService loginService)
{
_loginService = loginService;
}
public void Start(object hint = null)
{
if (!_loginService.IsLoggedIn)
{
ShowViewModel<LoginViewModel>();
}
else
{
ShowViewModel<HomeViewModel>();
}
}
2 つの部分からなる質問:
プラグインで定義されている正しい構文 with
CreatableTypes
andRegisterAppStart
to use を使用していますか?LoginService
を使用
RegisterAsLazySingleton()
すると、リクエスト時に同じ LoginService インスタンスが取得されることはわかっていますが、そのインスタンスの有効期間はどれくらいですか? CustomAppStart で要求すると、そのインスタンスの状態は、呼び出して使用できるようにメモリに残りますか、それとも、ViewModel の 1 つがコンストラクターで ILoginService の同じインスタンスを要求したときに、Mvx が魔法のようにその状態を保存して再水和しますか?