У меня есть конструктор, который принимает два интерфейса, они имеют одинаковый интерфейс, но должны быть разных реализаций:
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
из карты структуры, я хочу реализациючтобы получить правильную единицу работы объектов, которые в моем случае, по сути, две разные базы данных, так что это один и тот же код с разными строками соединения.