Pergunta

Alguém pode pensar em uma solução boa para ficar COI em um aplicativo de console?

No momento estamos apenas usando uma classe estática com o seguinte método:

public static T Resolve<T>()
{
    return dependencyResolver.Resolve<T>();
}

Eu gostaria que a experiência seja perfeita, mas não consigo pensar em uma maneira de conseguir isso a partir de um aplicativo de console.

Foi útil?

Solução

Você terá que fazer uma chamada de localizador de serviço (Resolve<T>()) em algum lugar. O truque é para obtê-lo como out-of-the-way possível. Para aplicativos de console esta bootstrapping acontece no método Main(). Fazê-lo lá e minimizar as chamadas Resolver em outro lugar e você vai ser grande. Para a maioria das dependências, injeção uso construtor.

Outras dicas

Aplicativos de console não tem nenhuma limitação sobre uma aplicação web ou forma de IoC. Você pode usar qualquer de sua escolha (Spring, Ninject, Unidade, etc.). A maioria deles são configuráveis ??com o arquivo XML fora do seu aplicativo de console e alguns, como Ninjector requerem uma configuração dentro de sua aplicação.

Eu usei Spring.NET a partir de uma aplicação de console sem problemas. Você só precisa apontar para seu arquivo de configuração, e vai ligar todas as dependências. O que você, em seguida, do com esses objetos depende do que o seu console app está tentando fazer, é claro.

Checkout Microsoft Unidade .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top