Pergunta

Meus controladores usam serviços em vez de repositórios diretamente.Os serviços são colocados no projeto ApplicationServices:

public XYZService
        (
            IBlaRepository BlaRepository,
            IBla1Repository Bla1Repository
        )
        {
            Check.Require(BlaRepository != null, "BlaRepository may not be null");
            this.BlaRepository = BlaRepository;
        ....

Isso funciona bem.

Os repositórios são implementados da seguinte forma:

public interface IBlaRepository : IRepository<Bla> (placed in Core/DataInterfaces)

public class BlaRepository : Repository<Bla>, IBlaRepository (placed in Data)

Às vezes, posso simplesmente usar o repositório de arquitetura nítida ‘simples’.Existe uma maneira de passá-los para o serviço acima?Tenho que registrá-los em algum lugar?

Para esclarecer isso – o contratante do serviço se parece com isto:

public XYZService
        (
            Repository<UUU> UUURepository

...

Espero que isso faça sentido.

Obrigado!

Cris

Foi útil?

Solução

Chris, tudo o que você precisa fazer é se referir ao seu repositório como tal:

    private readonly IRepository<Bla> _blaRepository; 

    public BlaService(IRepository<Bla> blaRepository) 
    { 
         _blaRepository = blaRepository; 
    }

Isso permitirá que Windsor injete o repositório em seu controlador sem que você precise de mais nada.

Alex

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