Domanda

Ho riflettuto sul metodo IApplicationContext.GetObject (string name) e sembra fare affidamento abbastanza pesantemente sulle stringhe magiche per ottenere oggetti dal contesto di applicazione. Con altri contenitori come StructureMap è possibile utilizzare farmaci generici per specificare gli oggetti di configurazione e richiesta, ma c'è un il modo migliore di utilizzare le stringhe con il contenitore Spring.Net IoC per richiedere oggetti dal ApplicationContext?

È stato utile?

Soluzione

Si potrebbe avere un wrapper che si chiama, prendendo un parametro di tipo generico.

Qualcosa di simile a questo:

public void MyMethod()
{
    IMyService myService = ApplicationContextWrapper.Resolve<IMyService>();
}


public static class ApplicationContextWrapper
{
    public static T Resolve<T>()
    {
        return ApplicationContext.Resolve<T>(typeof(T).Name);
    }
}

Non come alcuni degli altri contatiners CIO, ma almeno si otterrà un qualche tipo di supporto del compilatore.

Altri suggerimenti

Primavera supporta il CommonServiceLocator tramite un adattatore . Questa interfaccia ha l'API vi aspettavate e anche compilare contro il comune servizio di individuazione in modo da poter passare da contenitori IoC se si vuole, senza dover modificare il codice esistente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top