本文介绍了如何使用 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<T> 的约定使用 StructureMap 映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!