Как подключить dll динамически? - C#

Узнай цену своей работы

Формулировка задачи:

Допустим, есть программа на c# и к ней dll тоже на c#. Обе писал я. Пусть в папке Program лежит exe программы. А dll лежит в Program/bin к примеру. Как мне ее динамически подключить, для ее использования. Dll не нужно добавлять внутрь проекта, т.к. обновления программы будут реализованы через изменение этой dll. Желательно чтобы классы и методы из dll добавлялись все и автоматически.

Решение задачи: «Как подключить dll динамически?»

textual
Листинг программы
  1.  static void Main(string[] args)
  2.         {
  3.             var catalog = new AggregateCatalog();
  4.             catalog.Catalogs.Add(new AssemblyCatalog(Assembly.Load("path")));
  5.             var container = new CompositionContainer(catalog);
  6.             var test = new Test();
  7.             try
  8.             {
  9.                 container.ComposeParts(test);
  10.                 var foo = new Foo();
  11.                 test.DemoToResolveViaMef.Add(foo);
  12.                 test.DemoToResolveViaMef.Change(foo);
  13.                 test.DemoToResolveViaMef.Delete(foo);
  14.             }
  15.             catch (CompositionException compositionException)
  16.             {
  17.                 Console.WriteLine(compositionException);
  18.             }
  19.           }
  20.  
  21.  
  22. class Test
  23.     {
  24.         [Import(typeof(IDemo))]
  25.         public IDemo DemoToResolveViaMef { get; set; }
  26.     }
  27.  
  28.     public class Foo
  29.     {
  30.        
  31.     }
  32.  
  33.     public interface IDemo
  34.     {
  35.         int Add(Foo foo);
  36.         int Delete(Foo foo);
  37.         int Change(Foo foo);
  38.     }
  39.  
  40.     [Export(typeof(IDemo))]
  41.     public class Demo : IDemo
  42.     {
  43.         public int Add(Foo foo)
  44.         {
  45.            Console.WriteLine("Added");
  46.            return 0;
  47.         }
  48.  
  49.         public int Delete(Foo foo)
  50.         {
  51.             Console.WriteLine("Deleted");
  52.             return 0;
  53.         }
  54.  
  55.         public int Change(Foo foo)
  56.         {
  57.             Console.WriteLine("Changed");
  58.             return 0;
  59.         }
  60.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы