3

J'utilise l'injection de contructor dans ma solution, mais cette classe a une propriété que je ne veux pas passer dans le constructeur où j'ai les dépendances invariantes. Disons que j'ai obtenu un ILogger et qu'il a une propriété FileName que je veux définir, tout en lui permettant de définir les dépendances dans le constructeur. Comment puis-je enregistrer le type, et en même temps passer la chaîne de connexion defaunt.Injection de propriété de programme avec Microsoft Unity

J'espère qu'il est un moyen facile de le faire - de préférence sans décorer la propriété avec un attribut, mais si la configuration est plus facile avec l'attribut je suppose que c'est cool :)

La question est, comment pouvons- J'injecte une valeur de propriété sur un objet qui utilise également l'injection de contructor - avec Unity. MISE À JOUR: Je l'ai mentionné dans le titre, mais j'ai oublié d'élaborer dans le corps du texte - je veux définir ces dépendances manuellement (dans le code), par opposition à dans un fichier de configuration.

Répondre

2

Ok, je suppose que cela a aidé à poser la question, j'ai découvert - ici c'est.

container.Configure<InjectedMembers>().ConfigureInjectionFor<BasicLogger>(
    new InjectionProperty("FileName", @"C:\test.log") 
); 
0

Si vous injectez des propriétés, vous devez utiliser [Dépendance] ou bien injecter manuellement cette dépendance.

+0

Ouais je ne l'ai pas fait très clair - mais je veux le faire manuellement;) –

0

Vous souhaitez généralement qu'une interface de configuration IC soit injectée. Cela aurait probablement une propriété LogFile que vous pouvez lire.

L'Implémentation de configuration est généralement juste un simple wrapper pour lire les éléments du fichier de configuration.

+0

Vous avez un bon point là, mais nous essayons de le garder aussi simple que possible, et toute cette mise en œuvre spécifique a besoin est un nom de fichier. –

Questions connexes