Pregunta

Tengo una capa de servicio en mi aplicación que contiene servicios como AccountService, UserService y DocumentService.

Utilizo StructureMap para mi inyección de dependencia para que el constructor de mi servicio pueda verse así:

public AccountService(IAccountRepository repo)
{
    this.accountRepository = repo;
}

Ahora si necesito acceso para decir el UserServic¿Mientras esté allí, es una buena forma tener lo siguiente?

public AccountService(IAccountRepository repo, IUserService user)
{
    this.accountRepository = repo;
    this.userService = user;
}
¿Fue útil?

Solución

Sí, está perfectamente bien. Puede descargar el código y ver el episodios Rob Conery preparado.

public class CatalogService : Commerce.Services.ICatalogService 
{
    ICatalogRepository _repository = null;
    IOrderService _orderService = null;

    /// <summary>
    /// Creates a CatalogService based on the passed-in repository.
    /// </summary>
    /// <param name="repository">An ICatalogRepository</param>
    public CatalogService(
        ICatalogRepository repository, IOrderService orderService) 
    {
        _repository = repository;
        _orderService = orderService;

        if (_repository == null)
            throw new InvalidOperationException("Repository cannot be null");
    }
    ...
}

Inyecta el servicio OrderService en el servicio de catálogos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top