Ho un metodo che costruisce le dipendenze usando Unity. Attualmente, tutte le chiamate fanno praticamente la stessa cosa: Registra 2 oggetti repository e 2 oggetti 'App Part'. Il mio problema è che ce ne sono molti e il metodo è diventato enorme. Ho generalizzato le chiamate ma ecco un esempio:
container.RegisterType<IRepositoryOneDataAccess, RepositoryOneDataAccess>();
container.RegisterType<IRepositoryTwoDataAccess, RepositoryTwoDataAccess>();
container.RegisterType<IAppPart, FirstAppPart>("FirstAppPart.TestName");
container.RegisterType<IAppPart, SecondAppPart>("SecondAppPart.TestName");
Ho pensato che questo potesse essere diviso per ridurre il codice nel metodo che registra i tipi con il contenitore.
In primo luogo ho spostato le 2 chiamate in basso in un altro metodo poiché entrambi si registrano alla stessa interfaccia, ho trovato questo metodo:
private void RegisterParts<TPartOne, TPartTwo>(string firstAppPartName, string secondAppPartName) where TPartOne : IAppPart where TPartTwo : IAppPart
{
container.RegisterType<IAppPart, TPartOne>(firstAppPartName);
container.RegisterType<IAppPart, TPartTwo>(secondAppPartName);
}
Questo sembra funzionare ma non sono sicuro che questo sia il modo migliore per farlo. Vorrei anche spostare le altre chiamate in un altro metodo preferibilmente uguale a quello che ho creato, ma non sono sicuro di come farlo o anche se è possibile.
C'è un modo migliore per refactoring questo?