自動登録はアーカイブしますが、すでに登録されているタイプは無視しますか? Iは、例えばシンプルインジェクタに登録済みのタイプがあるかどうか確認してください
var repositoryAssembly = typeof(SqlUserRepository).Assembly;
var registrations =
from type in repositoryAssembly.GetExportedTypes()
where type.Namespace == "MyComp.MyProd.BL.SqlRepositories"
where type.GetInterfaces().Any()
select new
{
Service = type.GetInterfaces().Single(),
Implementation = type
};
foreach (var reg in registrations)
{
// TODO: how to check reg.Service has already registered or not
container.Register(reg.Service, reg.Implementation, Lifestyle.Transient);
}
単純インジェクタドキュメントのコードを参照し、IはISampleRepository intefaceを有し、2つの実装は、異なるアセンブリ
- SampleRepositoryアセンブリ "MyComp.MyProd.BL.SqlRepositories" である であります
- OverrideSampleRepositoryは異なる1つの
プロジェクト1である:
を働きましたvar container = new Container();
container.AutoRegistration();
プロジェクト2:例外ISampleRepositoryは、すでにあなたはドキュメントの既存の登録を無効にする方法をdescribedこの
container.Verify();
container.GetRegistration(reg.Service) != null; // Not registered
私はあなたが達成しようとしていること、何が問題なのか、あなたの質問に関連して投稿したコードを理解していません。あなたの質問を更新して詳細を教えてください。 – Steven
@Steven私の投稿を更新しました – Martinez