我有一個構造函數,需要兩個接口,它們是相同的接口,但需要不同的實現:如何使用sturcturemap將單個接口的兩個不同實現傳遞給構造函數?
public class Foo
{
public Foo(IBar publicData, IBar privateData)
{
}
}
我想發生的是,structuremap將通過在具體實施IBar
作爲class PublicData
和class PrivateData
爲不同的參數。這可能嗎?
UPDATE
事實上,以確保有足夠的信息:
說我有看這樣工作的真正的類:
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
的實例時,我希望爲實現提供正確的工作對象單元,在我的實例中基本上是兩個不同的數據庫,所以它是具有不同連接字符串的相同代碼。
有沒有一種方法,這可以適用於基於約定的系統?我寧願不必手動連接所有的存儲庫。 – ilivewithian 2010-09-06 08:58:24
請參閱我的編輯,瞭解我使用過的可能方法。 – PHeiberg 2010-09-06 09:28:21