如何使用StructureMap映射的IRepository <T>约定

ssm*_*ith 5 structuremap

在StructureMap中有一种方法可以用一行或一个约定来做这种重复映射吗?

    For<IRepository<Mailout>>().Use<MailoutRepository>();
    For<IRepository<MailServer>>().Use<MailServerRepository>();
    For<IRepository<MailoutStatus>>().Use<MailoutStatusRepository>();
    For<IRepository<MailoutTemplate>>().Use<MailoutTemplateRepository>();
    For<IRepository<Publication>>().Use<PublicationRepository>();
    For<IRepository<Recipient>>().Use<RecipientRepository>();
Run Code Online (Sandbox Code Playgroud)

Jos*_*gan 5

要映射IRepository<Mailout>MailoutRepository,请使用:

var c = new Container(x =>
{
    x.Scan(scan =>
    {
        // there are other options to expand which assemblies to scan for types
        scan.TheCallingAssembly(); 
        scan.ConnectImplementationsToTypesClosing(typeof (IRepository<>));
    });
});
Run Code Online (Sandbox Code Playgroud)

要映射IRepository<Mailout>Repository<Mailout>,请使用:

var c = new Container(x =>
{
    x.For(typeof (IRepository<>)).Use(typeof (Repository<>));
});
Run Code Online (Sandbox Code Playgroud)