Я связываю один из внешних ресурсов во время выполнения в своем коде, используя что-то вроде ниже:
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom("MyNice.dll");
Type type = assembly.GetType("MyType");
Tool = Activator.CreateInstance(type) as Tool;
Теперь, как вы можете видеть, в конце создания объекта он должен преобразовать полученный объект в класс инструмента, потому что в моем коде много ссылок на методы и свойства класса инструмента, и если его там нет, то код выдаст ошибку во время компиляции.
Теперь это плохая ситуация, потому что я хотел удалить Dll из своих ссылок и динамически загружать ее во время выполнения, но в то же время есть фрагменты моего кода, которые ссылаются на сборку Tool и зависят от нее. Как я могу сделать его независимым? Должен ли я использовать отражение во всем моем коде или есть какая-то простая альтернатива?
Например:
if (Tool.ApplicationIsOpen)
return StatusResult.Success;
находится в том же классе, который предполагает, что класс Tool уже существует и сломается, если я удалю его из своей папки ссылок.
Любые предложения?