У меня есть устаревшее приложение, написанное на веб-формах и VB .NET.Я сыт по горло этой комбинацией, поэтому я пытаюсь написать новую функциональность в контроллерах Web API вместо обработчиков ashx.Хорошо для меня.Я также предпочитаю C #, поэтому я пытаюсь загрузить свои действия контроллера из библиотеки C # вместо записи их в VB .NET.
Я попытался сделать следующее:
- ИспользованиеMapRoute для присвоения имени сборке для загрузки (не могу этого сделать, может видеть только MapHttpRoute, MapRoute недоступен. MapHttpRoute не имеет опции сборки)
- Напишите мой собственный распознаватель сборок для загрузки другой библиотеки DLL моего проекта во время выполнения.Это также не работает, VB NET жалуется на то, что используемый мной код неправильно реализует GetAssemblies.
Это код, который я пытаюсь использовать:
Public Class CustomAssemblyResolver
Inherits IAssembliesResolver
Public Function IAssembliesResolver_GetAssemblies() As ICollection(Of Assembly) Implements IAssembliesResolver.GetAssemblies
Dim baseAssemblies As List(Of Assembly) = AppDomain.CurrentDomain.GetAssemblies().ToList()
Dim controllersAssembly = Assembly.LoadFrom("APIControllers.dll")
baseAssemblies.Add(controllersAssembly)
Return baseAssemblies
'Throw New NotImplementedException
End Function
End Class
Я получаю сообщение об ошибке: «Интерфейс IAssembliesResolver не реализован этим классом».
Какой самый простой способ загрузить мои контроллеры API из отдельного проекта?Основной проект находится в VB .NET, проект, который я загружаю, находится в C #.
РЕДАКТИРОВАТЬ: Проблема усложняется макетом в данный момент.Для простоты oldyuck - это веб-форма / vb .net, а newfast - новый проект на C #.
oldyuck - основной устаревший проект.У него огромный монолитный класс, который делает все.Это создается как огромный объект, который делает все.Это также пародия на Web Forms / VB .NET.newfast - это мой C # API Controller проект.Ему нужен огромный монолитный объект от oldyuck, чтобы что-то делать с базой данных и т. Д.
newfast может зависеть от oldyuck, а затем я могу зависеть от огромного объекта, создавать его экземпляры и т. Д., Но он не заводитсяв папке / bin / при сборке oldyuck.
oldyuck может зависеть от newfast, и тогда он окажется в папке / bin /.Но в этой настройке newfast не может зависеть от объекта бога от oldyuck, поэтому он не может использовать этот код, и, похоже, нет способа передать этот объект ему.
Я застрял.Помощь: (