Вы должны использовать модуль (а не класс), если вы создаете методы расширения. В VB.NET я не знаю другого варианта.
Будучи сам по себе устойчивым к модулям, я потратил пару часов, пытаясь понять, как добавить шаблонный код, чтобы разрешить встроенные сборки в одном, только чтобы выяснить, что Sub New()
(Модуль) и Shared Sub New()
( Класс) эквивалентны. (Я даже не знал, что было вызываемым Sub New()
в модуле!)
Так что я просто бросил туда строки EmbeddedAssembly.Load
и AddHandler AppDomain.CurrentDomain.AssemblyResolve
, и Боб стал моим дядей.
Приложение : я еще не проверил это на 100%, но у меня есть предположение, что Sub New()
работает в модуле в другом порядке, чем класс, просто исходя из того, что я пришлось избегать перемещения некоторых объявлений во внутренние методы извне.