如何使用 sturcturemap 将单个接口的两个不同实现传递到构造函数中?
我有一个采用两个接口的构造函数,它们是相同的接口,但需要不同的实现:
public class Foo
{
public Foo(IBar publicData, IBar privateData)
{
}
}
我希望发生的是,结构图将传入 IBar
的具体实现作为 class PublicData
和 class PrivateData
用于不同的参数。这可能吗?
更新
事实上,为了确保有足够的信息:
我正在使用的真实类如下所示:
public abstract class EFRepository<T> : IRepository<T>
{
protected EFRepository(IUnitOfWork publicUnitOfWork,
IUnitOfWork privateUnitOfWork)
{
}
}
EFRepository
的实现可能如下所示
public partial class ClaimRepository: EFRepository<Claim>, IClaimRepository
{
public ClaimRepository(IUnitOfWork publishedUnitOfWork,
IUnitOfWork unpublisedUnitOfWork)
: base(publishedUnitOfWork, unpublisedUnitOfWork)
{
}
}
:当我从结构图中请求 IClaimRepository
实例时,我希望为实现提供正确的工作单元对象,在我的实例中本质上是两个不同的数据库,因此它是具有不同连接字符串的相同代码。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尚未编译和测试,但原则上应该可以工作:
编辑:
为了按照约定进行此操作,可以使用
IRegistrationConvention
该约定将应用于扫描中
请参阅 扫描程序集部分以获取更多信息。
Haven't compiled and tested, but it should work in principle:
Edit:
For making this by convention an
IRegistrationConvention
could be usedThe convention would be applied in a scan
See the Scanning Assemblies section in the SM docs for further info.
设置配置如下:
然后获取实例如下:
这只是一个建议。我纠正了:-)
Setup the configuration as follows:
Then get the instances as follows:
This is just a suggestion. I stand corrected :-)