Estoy usando Ninject como contenedor IoC en mi proyecto. Tengo la siguiente clase:Unión basada en convenciones de argumentos de cadena de constructor con Ninject
public class SomeRepository:ISomeRepository
{
public SomeRepository(string someDatabaseConnectionString)
{
// some code here..
}
}
En mi archivo de configuración de la aplicación tengo una cadena de conexión llamada "someDatabase". Por defecto, el uno debe añadir siguiente configuración con el fin de inyectar esta cadena de conexión en el constructor:
kernel.Bind<ISomeRepository>()
.To<SomeRepository>()
.WithConstructorArgument("someDatabaseConnectionString", connString);
pero quiero poner en práctica convencional basada unión de dichas cadenas. Los valores para todos los parámetros de constructor de tipo de cadena que los nombres finalizan con "ConnectionString" deben tomarse de la sección de configuración connectionStrings de la aplicación e inyectarse automáticamente. Quiero implementar una convención similar para la sección appSettings también. Este enfoque se describe en mayor detalle en el artículo "Primitive Dependencies" de Mark Seeman (sección "Convenciones para primitivos"). El contenedor de Castle Windsor se usó en ejemplos.
¿Es posible implementar tales convenciones usando Ninject y cuál es la mejor manera de hacerlo? Ya he probado ninject.extensions.conventions pero parece que no tiene esa funcionalidad, ¿verdad?
¿Se puede usar ConfigurationManager.AppSettings ["someDatabaseConnectionString"]? – Ben
Actualmente estoy usando ConfigurationManager.AppSettings ["someDatabaseConnectionString"]. Pero imagine que tiene 20 o más clases que dependen de las cadenas de conexión. No quiero escribir una regla específica para cada una de estas clases, quiero inyectar dependencias automáticamente. –