Здравствуйте, ·, Вы писали:
·>И какой тут смысл создавать инстанс UserService? Чем UserService.Save со статическим методом хуже?
Вообщем-то можно и статические методы исспользовать.
·>Не понял. Что за ibeaconContext? Где DbConnection и ConnectionParams?
Опечатка. ibeaconContext — это someContext. SomeContext — это наследованный от Entities из EF, который наследуется от DbContext.
ConnectionParams ему можно передать из Singleton объектов.
·>Т.е. у тебя все зависимости будут синглтонами. Правильно понял? Жуть же. Типичный спагетти-код и радости дебага правильности порядка инициализации синглтонов.
Есть такое.
·>А теперь посмотрим на DI здорового человека:
·>·>public class UserService {
·> public UserService(DbConnection connection, UserManager userManager) {this.connection = connection; this.userManager = userManager;}
·>
·>И отдельно где-нибудь в Global делаем явный wiring:
·>·>var userService = new UserService(dbConnection, userManager);
·>
·>Почему редко такой код встречается?..
А если в классе UserService в методе Save для бизнес логики надо исспользовать разные *Managers,
а в методе Delete еще более разные(UserProfileManager, AcitvityManager и т.д.).
Передавать в UserService(FabricOfManagers fabric) — фабрику классов со всеми менеджерами?