J'ai un constructeur qui prennent deux interfaces, ils sont la même interface, mais elles doivent être différentes implémentations:Comment utiliser sturcturemap pour passer deux implémentations différentes d'une interface unique dans un constructeur?
public class Foo
{
public Foo(IBar publicData, IBar privateData)
{
}
}
Ce que je voudrais arriver est que StructureMap passerait dans une mise en œuvre concrète de IBar
comme class PublicData
et class PrivateData
pour les différents arguments. Est-ce possible?
MISE À JOUR
En fait, pour vous assurer qu'il ya assez d'informations:
Les classes réelles que je travaille ressembler à ceci:
public abstract class EFRepository<T> : IRepository<T>
{
protected EFRepository(IUnitOfWork publicUnitOfWork,
IUnitOfWork privateUnitOfWork)
{
}
}
et une mise en œuvre EFRepository
pourrait ressembler à ceci:
public partial class ClaimRepository: EFRepository<Claim>, IClaimRepository
{
public ClaimRepository(IUnitOfWork publishedUnitOfWork,
IUnitOfWork unpublisedUnitOfWork)
: base(publishedUnitOfWork, unpublisedUnitOfWork)
{
}
}
Donc quand je demande et instance de IClaimRepository
à partir de la carte de structure, je veux que l'implémentation reçoive l'unité d'objet de travail correcte, qui est essentiellement deux bases de données différentes, donc le même code avec différentes chaînes de connexion.
Existe-t-il un moyen de l'appliquer à un système basé sur des conventions? Je préfère ne pas avoir à câbler manuellement tous mes dépôts. – ilivewithian
Voir ma modification pour une approche possible que j'ai utilisée. – PHeiberg