Это буквальный Святой Грааль , за которым мы все время гонялись: возможность создания экземпляра класса VBA в процессе работы из кода C #.В ту минуту, когда мы выясним, как это сделать, IoC-контейнер для кода VBA станет определенной возможностью и будет полностью поставляться с Rubberduck вместе с полнофункциональной макетной структурой .
VBA.решение, вероятно, не представляется возможным, поскольку, как упоминалось в @this, New
динамическое создание экземпляра класса без системы типов и без отражения ... ... это волшебство чистой черной магии.
Отмена технических проблемнужно задаться вопросом: будет ли контейнер IoC иметь такую огромную разницу?
Правда в том, что это не так.Внедрение зависимостей не нуждается в контейнере IoC , «Бедняжка DI» работает отлично и, я могу добавить, даже предпочтительнее.
Я утверждаю, что если вы достигли точкигде контейнер IoC имеет смысл для вашего проекта VBA, и вы понимаете все о DI и SOLID и пишете свой код соответствующим образом ... тогда [не отнимать ничего от VBA, но] моя оценка состоит в том, что вы совершенно не готовы двигаться дальшеот VBA и работать с другими языками, поддерживающими ООП, такими как VB.NET или C #, - и использовать все, что вы узнали об ООП в VBA, открывая при этом совершенно новый диапазон возможностей с помощью параметризованных конструкторов, наследования классов, делегатов, лямбд, LINQ.и многое другое.