Чтобы проверить, существует ли файл, используйте system.io.file.exists(path)
.
Чтобы загрузить сборку, посмотрите на Assembly.Load
, вы можете выполнить код из нее, загрузив ее, затем вызвав Activator.CreateInstance
для типа из этой сборки. Если у вас есть экземпляр типа, вы можете вызывать методы для него.
Если у вас нет интерфейса, определенного в типе из сборки для легкого вызова, вам придется использовать Reflection для проверки типов и методов этих типов. Это становится все сложнее, и без конкретного примера того, что вы пытаетесь сделать, я не могу дать вам пример того, как на самом деле это сделать в коде.
обновленный пример
Самый простой способ просто выполнить код из динамически загруженной сборки - это заранее знать кое-что об этом.
Вы должны заранее знать имя Type
, которое содержит код, который вы хотите выполнить, имя метода, который содержит код, и параметры, которые он принимает. В этом примере предположим, что у вас всегда есть класс в сборке с именем «MyClass», а код, который вы хотите запустить, находится в подпрограмме «Execute», которая не принимает параметров. Вы можете загрузить и выполнить его следующим образом.
Вы должны импортировать System.Reflection
Dim asm as Assembly = Assembly.LoadFrom("TheDll.dll") 'Load the assembly
dim t as type = asm.GetType("MyClass") 'Get a reference to the type that contains the code
dim info as MethodInfo = t.GetMethod("Execute") 'Get a reference to the method on the type that we want to call
dim instance as object = Activator.CreateInstance(t) 'Create an instance of the type to call the method on
info.Invoke(obj,nothing) 'Invoke the method with no parameters