Wie zu verwenden Repository-Schnittstelle, nutzt Generics mit Dependency Injection?

Ich bin versucht, verwenden Sie die folgende Generische Repository-Schnittstelle für DI-und constructor injection:

public interface IRepository<TEntity> : IDisposable where TEntity : class

Das problem ist, um zu definieren, die eine Instanz der Schnittstelle, ich muss die Klasse geben, wie diese:

private IRepository<Person> _personRepository;

Das Problem mit diesem ist, wenn ich mit DI (und ich bin mit der Einheit für IoC-framework), dann muss ich definieren, mehrere Instanzen in meinem Konstruktor, um alle repository-Schnittstellen, die ich brauche, um mit zu arbeiten, wie diese:

public MyClass(IRepository<Person> personRepository,
               IRepository<Orders> ordersRepository,
               IRepository<Items> itemsRepository,
               IRepository<Locations> locationsRepository)
{
  _personRepository = personRepository;
  _OrdersRepository = ordersRepository; 
  _itemsRepository = itemsRepository;
  _locationsRepository = locationsRepository;
}

Fragen:

  1. Ist das OK?
  2. Wenn nicht, wo bin ich verloren auf diesem Konzept?
  3. Auch wenn das ist die richtige, was ist der Punkt der Einheit zu registrieren, Schnittstelle zu den konkreten Typ? Ich habe es schon getan, da die generische repository mich gezwungen auf Erklärung.

Hilfe bitte deaktivieren Sie dieses, für mich, und ich Schätze Ihre Hilfe!

InformationsquelleAutor atconway | 2013-01-16
Schreibe einen Kommentar