Dans mon MvvmCross
sur la base d'une application,
J'enregistre quelques classes de service singleton auprès de Mvx IOC container
à l'intérieur de mon Shared Core App
comme suit :
CreatableTypes()
.EndingWith("Service")
.AsInterfaces()
.RegisterAsSingleton();
Tous les services enregistrés héritent d'une classe de base :
public abstract class BaseService
{
public abstract void MyMethod();
}
Après le démarrage de l'App, j'aimerais exécuter MyMethod()
sur chacun des services enregistrés.
J'ai essayé de faire ce qui suit :
var serviceTypes = ReflectionUtils.GetTypesFromBase<BaseService>();
foreach (Type serviceType in serviceTypes)
{
BaseService service = (BaseService)Mvx.IocConstruct(serviceType);
service.MyMethod();
}
Mais en appelant Mvx.IocConstruct
crée un autre objet, et j'aimerais effectuer l'action sur l'instance singleton qui a été créée lors de l'enregistrement IoC.
Je pense que ce dont j'ai besoin est quelque chose comme Mvx.Resolve(Type t)
mais cette méthode n'existe pas.
Dois-je résoudre spécifiquement tous les services et appeler la méthode sur chacun d'entre eux ?
ou existe-t-il une alternative ?
Merci d'avance pour votre aide !