#c_sharp
У меня есть два класса. В каждом их них нужен экземпляр другого класса. SQLite sqllite = new SQLite(config); FireBird fb = new FireBird(config, sqllite); т.е. мне нужно SQLite sqllite = new SQLite(config,fb); Но я так сделать не могу т.к. он еще не создан. Местами классы менять не могу -- тоже самое получится. Что одному нужен другой, который еще не создан. Вот у меня класс SQLite. В нем есть меод public UserData GetData() Метод берет данные из SQLite и должен передать их в экземпляр fb.InsertData(ud). В свою очередь fb должен сделать тоже самое. Он должен иметь возможность взять из FireBird данные и отправить их в экземпляр sqllite.InsertData(ud)
Ответы
Ответ 1
То есть, вы пытаетесь связать два класса, отвечающих за разные базы данных, и скормить каждому экземпляр другого в конструкторе? Так не получится, какой-то из экземпляров вам придётся создавать первым. Можно, конечно, было бы «пробить силой», и заинжектить нужные экземпляры после создания. Но это всё равно плохой путь: эти классы в вашей архитектуре знают слишком много друг о друге. Я бы посоветовал делать так: Классы SQLite и FireBird друг о друге не знают. Логика получения данных из одного и передачи другому находится во внешнем по отношении к ним классе, который имеет ссылки на оба, и работает с ними.
Комментариев нет:
Отправить комментарий