Articles of ioc

Precisa de ajuda para entender como o Ninject está obtendo uma instância Nhibernate SessionFactory em um UnitOfWork?

Então, usando alguma ajuda de tutoriais, consegui conectar uma session Nhibernate aos meus repositorys e meus repositorys aos meus controladores usando o Ninject. No entanto, há uma parte da configuração que não estou entendendo a “automagia” do que Ninject está fazendo e esperava que alguém pudesse explicar. Abaixo está o meu Ninject ModuleRepository que herda […]

Comparação de benchmark de desempenho de contêiner DI / IoC?

Encontrei alguns resultados de referência de 2008 para testar o desempenho de vários dos principais contêineres de ID / IoC do .NET aqui . Mas não consegui encontrar nenhum resultado atualizado. Existe algum benchmark por aí que compara alguns dos grandes containers de IoC (StructureMap, Unity, Ninject, Autofac, Castle Windsor, etc.)?

Extensão de fábrica de object personalizado para Unity

Estou usando o contêiner Unity IoC e preciso interceptar todas as chamadas para Resolver para uma determinada interface base e executar meu próprio código personalizado para construir esses tipos. Em outras palavras, no código de exemplo abaixo, quando eu chamo container.Resolve() , se ele não tem uma instância do tipo de implementação concreto, ele chama […]

Autofac: ocultando várias implementações contravariantes por trás de um composto

Eu fui acionado por essa pergunta sobre o suporte de covariância e contravariância (.NET 4.0) para o Autofac, e agora estou tentando conseguir algo semelhante, mas sem nenhuma sorte. O que eu estou tentando alcançar é configurar o Autofac de tal forma que quando eu resolvo um único IEventHandler concreto (para fins de demonstração usando […]

Unity Application Block, Como passar um parâmetro para o Injection Factory?

Aqui o que eu tenho agora Container.RegisterType(); Container.RegisterType( new InjectionFactory( (c) => c.Resolve().GetUser(“John”))); e pegue Container.Resolve(); Eu quero passar um nome como parâmetro para Factory para que eu seja capaz de resolver o object do usuário com o nome; Algo assim: Container.Resolve(“Jonh”); Como posso alterar o registro de tipo para este caso?

Castelo Windsor interceptar chamada de método dentro da class

Nós temos registros de componentes no container Castle Windsor, assim void RegisterComponent() { var component = Component.For().ImplementedBy(); component.Interceptors(); container.Register(component); } No entanto, chegamos ao problema de que, quando fazemos uma chamada de método dentro da class, ela não é interceptada. Por exemplo, nós temos componentes como ServiceA : IService { public void MethodA1() { // […]

Como conectar events com methods usando o Autofac?

É possível conectar events a methods com o Autofac em vez de todo o object via interfaces / classs (através de injeção de construtor e propriedade). Eu quero ligar no nível da function em vez do nível de tipo. Programaticamente eu espero que o seguinte trabalho seja feito (em C #): someType.Output += someOtherType.Input; Por […]

Autofac: registro em lote de tipos genéricos abertos

Eu tenho um assembly com muitos tipos concretos que implementam IHandler , como o seguinte: public class MoveCustomerHandler : IHandler { void IHandler.Handle(MoveCustomerCommand c) { // some business logic for moving a customer. } } Atualmente, estou registrando-os um por um da seguinte maneira: builder.RegisterType() .As<IHandler>(); builder.RegisterType() .As<IHandler>(); builder.RegisterType() .As<IHandler>(); // Many handler registrations here… […]

Repositório genérico Ninject + Bind

Estou tentando vincular uma interface IRepository genérica ao meu repository genérico – no entanto, ela sempre retorna null? Eu tentei várias coisas como: Bind(typeof(IRepository)).To(typeof(Repository)); Bind(typeof(IRepository)).To(typeof(Repository)); No entanto, se eu passar em uma interface não-genérica e class, então funciona como um sonho?

Criando uma instância usando Ninject com parâmetros adicionais no construtor

Eu decidi começar a usar o Ninject e enfrentar um problema. Digamos que eu tenha o seguinte cenário. Eu tenho uma interface IService e 2 classs implementando essa interface. E também tenho uma class, que tem um construtor obtendo IService e um int . Como posso criar uma instância dessa class com o Ninject (eu […]