Как подключить dll динамически? - C#
Формулировка задачи:
Допустим, есть программа на c# и к ней dll тоже на c#. Обе писал я. Пусть в папке Program лежит exe программы. А dll лежит в Program/bin к примеру. Как мне ее динамически подключить, для ее использования. Dll не нужно добавлять внутрь проекта, т.к. обновления программы будут реализованы через изменение этой dll. Желательно чтобы классы и методы из dll добавлялись все и автоматически.
Решение задачи: «Как подключить dll динамически?»
textual
Листинг программы
static void Main(string[] args)
{
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(Assembly.Load("path")));
var container = new CompositionContainer(catalog);
var test = new Test();
try
{
container.ComposeParts(test);
var foo = new Foo();
test.DemoToResolveViaMef.Add(foo);
test.DemoToResolveViaMef.Change(foo);
test.DemoToResolveViaMef.Delete(foo);
}
catch (CompositionException compositionException)
{
Console.WriteLine(compositionException);
}
}
class Test
{
[Import(typeof(IDemo))]
public IDemo DemoToResolveViaMef { get; set; }
}
public class Foo
{
}
public interface IDemo
{
int Add(Foo foo);
int Delete(Foo foo);
int Change(Foo foo);
}
[Export(typeof(IDemo))]
public class Demo : IDemo
{
public int Add(Foo foo)
{
Console.WriteLine("Added");
return 0;
}
public int Delete(Foo foo)
{
Console.WriteLine("Deleted");
return 0;
}
public int Change(Foo foo)
{
Console.WriteLine("Changed");
return 0;
}
}