es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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 permisos = ServiceLocator.Current.GetAllInstances\<CheckNavigationRights>().SelectMany(c => c.Permisos).Distinct();

¿Cómo puedo hacer lo mismo con Prism 8?

Utilizo Unity.

Muchas gracias por tu ayuda.

Tags:  , ,

Answer

  1. Avatar for 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>

Comments are closed.