本文介绍了如何使用 IRepository<T> 的约定使用 StructureMap 映射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

StructureMap 有没有办法用一行或一个约定来做这种重复映射?

Is there a way in StructureMap to do this kind of repetitive mapping with one line or a convention?

    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>();

推荐答案

要将 IRepository 映射到 MailoutRepository,请使用:

To map IRepository<Mailout> to MailoutRepository, use:

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<>));
    });
});

要将 IRepository 映射到 Repository,请使用:

To map IRepository<Mailout> to Repository<Mailout>, use:

var c = new Container(x =>
{
    x.For(typeof (IRepository<>)).Use(typeof (Repository<>));
});

这篇关于如何使用 IRepository&lt;T&gt; 的约定使用 StructureMap 映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-06 01:20