Как подключить 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;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д