Как мне принудительно загрузить ссылочную сборку?

У меня есть сторонняя библиотека, которая требует, чтобы сборка A загружалась, когда я вызываю их код. Эта сборка обычно устанавливается в GAC, поэтому у меня есть несколько вариантов ее загрузки:

  1. Я могу явно вызвать Assembly.Load () . Однако для этого требуется полное имя, которое мне неудобно жестко кодировать в моей программе.
  2. Я могу явно вызвать Assembly.LoadWithPartialName () . Это, конечно, устаревший API, и, конечно, мне неудобно терять контроль над управлением версиями.
  3. Я могу ссылаться на сборку в моем файле проекта Visual Studio, поэтому я всегда получаю ту версию, на которой построил. Однако это не сработает, если я не создам фиктивный объект в этой сборке. Компилятор C # просто игнорирует его, если я этого не делаю.
  4. Та же проблема, если я вызываю Assembly.GetReferencedAssemblies и принудительно загружаю согласованный. Компилятор C # просто не будет ссылаться на мою сборку, даже если я помещу ее в список ссылок.

Теперь я вызываю typeof (A.Foo) .Assembly.GetName () и игнорируйте возвращаемое значение. Есть ли лучший способ сделать это?

7
задан Todd Li 7 July 2011 в 00:27
поделиться