Je suivais la pointe de Ruben et posté une petite blog post sur la façon d'y parvenir, mais voici la réponse rapide:
Créer un attribut personnalisé:
public class InjectHereAttribute : Attribute
{
}
la classe cible ressemblera à ceci:
Maintenant Ninject doit être configuré pour utiliser l'attribut personnalisé, cela peut être fait en créant une mise en œuvre de IInjectionHeuristic qui reconnaît l'attribut personnalisé:
public class CustomInjectionHeuristic : NinjectComponent, IInjectionHeuristic, INinjectComponent, IDisposable
{
public new bool ShouldInject(MemberInfo member)
{
return member.IsDefined(
typeof(InjectHereAttribute),
true);
}
}
Et enfin ajouter ce comportement au noyau Ninject à l'aide la collection Components, elle fonctionnera le long des composants existants, à savoir l'implémentation par défaut de IInjectionHeuristic, ce qui signifie que l'attribut par défaut ou personnalisé peut être utilisé.
// Add custom inject heuristic
kernel.Components.Add<IInjectionHeuristic, CustomInjectionHeuristic>();
Le lien n'existe plus (illustrant ainsi pourquoi il est toujours préférable de copier/coller et donner crédit à l'auteur original, plutôt que de simplement lier l'original). Avez-vous une ressource alternative pour décrire la réponse originale à ce problème? – BTownTKD
@BTownTKD vous avez raison. J'ai ajouté l'exemple à la réponse et changé le lien cassé. – t3mujin
Merci! Cela semble très utile. – BTownTKD