Soy nuevo en los contenedores de IOC y estoy comenzando con NInject.Inyección de constructor con otros argumentos de constructor, sin dependencia
¿Qué hace si quiere que su constructor tenga parámetros que no son servicios y no necesita ser instanciado por el contenedor IOC?
Por ejemplo:
public class Person
{
private readonly string _name;
private readonly IPersonRepository _repository;
public Person(string name, IPersonRepository repository)
{
_name = name;
_repository = repository;
}
......
}
Imagínese que nombre es un requisito de la clase persona, por lo que, para asegurarse de que una persona siempre tiene un nombre, es necesario que sea aprobado para el constructor.
¿Cómo obtendríamos una instancia de Person using NInject? El nombre debe ser transferido por cualquier parte de la aplicación que esté creando una nueva Persona, mientras que el contenedor de IOC debe pasar en el IPersonRepository.
Entiendo que, o bien el nombre o el repositorio podrían ser inyectados usando una propiedad, pero esta no sería una solución limpia, estamos perdiendo algo del poder semántico del lenguaje de programación.
OK tiene sentido - Puedo ver cómo eso funcionaría en mi código – cbp