Добрый день. Столкнулся со следующей проблемой: есть 2 пакета (родительский пакет Bot и зависящий от него NewBot). В пакете Bot есть пользовательский элемент БП SendMessage, который на ExecuteElement создает экземпляр класса Worker и вызывает его метод Send.
Требуется в пакете NewBot заместить этот элемент, чтобы вызывалась другая логика. Я сделал следующим образом: Создал в пакете NewBot схему исходного кода с классом NewWorker
[Terrasoft.Core.Factories.Override] public class NewWorker : Worker { public override void Send() { //новая логика элемента БП } }
Метод Send в классе Worker объявлен со спецификатором virtual.
Как я понимаю, при такой записи если на системе будет стоять и пакет Bot и пакет NewBot, то элемент БП SendMessage должен при ExecuteElement вызвать Send из класса NewWorker. Но оно так не работает.... Вызывается все равно метод Send из класса Worker.
Что я делаю или понимаю не так? И может есть какой другой способ заместить пользовательский элемент БП?
Нравится
Victor, В пакете Bot экземпляр класса Worker создается через ClassFactory?
Victor, В пакете Bot экземпляр класса Worker создается через ClassFactory?
Именно поэтому переопределение, на которое вы надеетесь, не происходит.
Толмачев Дмитрий Юрьевич,
Большое спасибо за помощь, сейчас переделаю