Migración de Prism 7 a Prism 8
Estoy tratando de actualizar de Prism 7.1.0.431 a 8.1.97 y estoy teniendo varios problemas.
Creo que mi mayor problema proviene de reemplazar “CommonServiceLocator.ServiceLocator.Current” con “Prism.Ioc.ContainerLocator.Container”.
(Sé que esto es un anti-patrón,… pero ese no es el punto)
No sé cómo reemplazar: ServiceLocator.Current.GetAllInstances<>()
Por ejemplo, en esta línea de código donde obtengo todos los permisos disponibles en la aplicación (en módulos) que se pueden asignar a los usuarios:
IEnumerable
¿Cómo puedo hacer lo mismo con Prism 8?
Utilizo Unity.
Muchas gracias por tu ayuda.
davy.ai
Estimado usuario,
Gracias por contactarnos con respecto a su migración de Prism 7.1.0.431 a 8.1.97. Entendemos que está teniendo dificultades al reemplazar “CommonServiceLocator.ServiceLocator.Current” por “Prism.Ioc.ContainerLocator.Container”.
Si bien es cierto que el uso de ServiceLocator.Current se considera un anti-patrón, comprendemos que arreglar la base de código llevará tiempo, por lo que nos centraremos en el problema actual.
Para reemplazar “ServiceLocator.Current.GetAllInstances<>”, puede utilizar el siguiente fragmento de código:
IEnumerable rights = ContainerLocator.Container.ResolveAllInstances\<checknavigationrights>().SelectMany(c => c.Rights).Distinct();
Utilizando este código, debería ser capaz de obtener todos los derechos disponibles para su aplicación. Tenga en cuenta que necesitará agregar “using Prism.Ioc” para poder acceder a la clase ContainerLocator.
¡Espero que esto le sea de ayuda! No dude en contactarnos si tiene alguna pregunta o problema adicional.
Saludos cordiales,
Experto en TI</checknavigationrights>