Notre application utilise Autofac comme conteneur IoC et tire parti de l'enregistrement automatique pour quelques assemblages contenant du code largement utilisé.Définition claire des assemblages pour l'enregistrement automatique
Pour référencer chaque ensemble, on devrait normalement utiliser Assembly.GetAssembly(typeof(<type>))
, en utilisant l'un des types dans l'ensemble respectif. Ce n'est cependant pas très clair, car il n'est pas facile de voir quel assembly est enregistré via chaque type, et cela peut aussi conduire à des erreurs lorsque les types sont déplacés entre les projets.
Pour résoudre ce problème, dans chaque assemblée en question, j'ai créé une classe vide appelé Types
qui a bien sûr l'espace de nom de l'assemblée, afin que je puisse faire l'enregistrement automatique comme ceci:
builder.RegisterAssemblyTypes(
Assembly.GetAssembly(typeof(Xx.Common.Types)),
Assembly.GetAssembly(typeof(Xx.Core.Types)),
Assembly.GetAssembly(typeof(Xx.Infrastructure.Types)))
.AsSelf()
.AsImplementedInterfaces();
Ceci est bien sûr "code mort" sinon. Est-ce une idée bonne ou «intelligente» de le faire de cette façon, ou y a-t-il une idée meilleure, plus idiomatique? Est-ce que je suis stupide pour avoir même pris la peine de poser des questions à ce sujet?