Question

J'ai pensé à la méthode IApplicationContext.GetObject (nom de chaîne) et il semble compter assez lourdement sur les chaînes magiques pour obtenir des objets du contexte d'application. Avec d'autres conteneurs comme StructureMap vous pouvez utiliser les médicaments génériques pour spécifier les objets de configuration et de demande, mais est-il un mieux que d'utiliser des chaînes avec le conteneur Spring.Net IoC pour demander des objets du ApplicationContext?

Était-ce utile?

La solution

Vous pourriez avoir une enveloppe que vous appelez, en prenant un paramètre de type générique.

Quelque chose comme ceci:

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


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

Pas aussi bon que quelques-uns des autres contatiners IoC, mais au moins vous obtiendrez une sorte de soutien du compilateur.

Autres conseils

Spring supporte le CommonServiceLocator via un adaptateur . Cette interface a l'API que vous attendiez et vous compilez aussi contre la commune localisateur de services afin que vous puissiez passer des conteneurs IoC si vous voulez sans avoir à modifier le code existant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top