Je ne suis pas sûr de savoir comment utiliser StructureMap pour analyser tous les dépôts d'un espace de noms particulier. La plupart des dépôts prennent la forme:Récupérer des dépôts avec Structuremap
namespace CPOP.Infrastructure.Repositories
{
public class PatientRepository : LinqRepository<Patient>, IPatientRepository
{
}
}
namespace CPOP.Infrastructure.Repositories
{
public class LinqRepository<T> : Repository<T>, ILinqRepository<T>
{
}
}
namespace CPOP.Domain.Contracts.Repositories
{
public interface IPatientRepository : ILinqRepository<Patient>
{
}
}
J'ai essayé:
x.Scan(scanner =>
{
scanner.Assembly(Assembly.GetExecutingAssembly());
scanner.ConnectImplementationsToTypesClosing(typeof(ILinqRepository<>));
})
Mais, il ne capte que la classe LinqRepository
. Quelle est la meilleure façon de récupérer les différents dépôts que je vais déposer là-bas?
Et, selon le reuest de Joshua, voici un exemple d'utilisation:
namespace CPOP.ApplicationServices
{
public class PatientTasks : IPatientTasks
{
private readonly IPatientRepository _patientRepository;
public PatientTasks(IPatientRepository patientRepository)
{
_patientRepository = patientRepository;
}
public Patient GetPatientById(int patientId)
{
int userId; // get userId from authentication mechanism
return _patientRepository.FindOne(new PatientByIdSpecification(patientId));
}
public IEnumerable<Patient> GetAll()
{
int userId; // get userId from authentication mechanism
return _patientRepository.FindAll();
}
}
}
Vous avez beaucoup d'interfaces/classes de base passe là-bas. Pouvez-vous montrer un exemple de la façon dont vous allez récupérer un dépôt? Quelle interface demanderez-vous? –