Я рефакторинг некоторого кода, и я столкнулся с дилеммой.
Допустим, у нас есть следующий сценарий:
- Базовая сборка, которая содержит много общих интерфейсов и классов
- Библиотечная сборка, которая содержит более специализированные классы.
Библиотечная сборка ссылается на базовую сборку. Пока все хорошо.
В связи с тем, что я выполняю этот рефакторинг, необходимо, чтобы Базовая сборка создавала объекты, которые объявлены в Библиотечной сборке.
ОК, чтобы избежать проблемы с циклической ссылкой, я решил загрузить библиотечную сборку, когда это необходимо (и это нужно только в очень конкретной точке при инициализации типа).
Тем не менее, производительность погрузки всего этого упала до темной пропасти ...
Кто-нибудь знает, как решить эту проблему?
Отредактировано для добавления
Некоторые люди просили код, который я использую для загрузки ... Это действительно тривиально.
/*
* Load the Library Assembly
*/
Assembly asm = Assembly.Load("Library, PublicKeyToken=...");
/*
* Get desired type
*/
Type t = asm.GetType("Library.DesiredType")
/*
* Get the default constructor
*/
var ctor = type.GetConstructor(new Type[] {})