Seguí punta de Ruben y registró una pequeña blog post sobre cómo lograr esto, pero aquí está la respuesta rápida:
Crear un atributo personalizado:
public class InjectHereAttribute : Attribute
{
}
la clase de destino ahora se verá así:
Ahora Ninject debe estar configurado para utilizar el atributo personalizado, esto se puede hacer mediante la creación de una implementación de IInjectionHeuristic que reconoce el atributo personalizado:
public class CustomInjectionHeuristic : NinjectComponent, IInjectionHeuristic, INinjectComponent, IDisposable
{
public new bool ShouldInject(MemberInfo member)
{
return member.IsDefined(
typeof(InjectHereAttribute),
true);
}
}
Y, por último añadir este comportamiento a la Ninject Kernel usando la colección de Componentes, se ejecutará a lo largo de los componentes existentes, es decir, la implementación predeterminada de IInjectionHeuristic, lo que significa que se puede usar el atributo predeterminado o personalizado.
// Add custom inject heuristic
kernel.Components.Add<IInjectionHeuristic, CustomInjectionHeuristic>();
El enlace ya no existe (lo que ilustra por qué siempre es mejor copiar/pegar y dar crédito al autor original, en lugar de * solo * vincularlo al original). ¿Tiene un recurso alternativo para describir la respuesta original a este problema? – BTownTKD
@BTownTKD tienes razón. Agregué el ejemplo a la respuesta y cambié el enlace roto. – t3mujin
¡Gracias! Esto se ve muy útil. – BTownTKD