App.configдля сборки со строгим именем, а затем использовать короткое имя в C # - PullRequest
0 голосов
/ 13 июля 2010

Я думаю, что заголовок не очень наводит на мысль о том, что я хотел спросить, вот пример.

У меня есть этот метод, который получает имя System.Windows.Forms Control и затем возвращает тип.(Мне нужно использовать версию 2.0.0.0 System.Windows.Forms)

return Type.GetType("System.Windows.Forms." + name + ", System.Windows.Forms,Culture=neutral, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089")

Мне не нравится внешний вид этого метода, кажется странным иметь эту строку.

Поэтому мне было интересно, можно ли указать сборку System.Windows.Forms в файле App.config и использовать какое-то короткое имя в c #?

<dependentAssembly>
  <assemblyIdentity name="System.Windows.Forms" publicKeyToken="b77a5c561934e089" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="2.0.0.0"/>
</dependentAssembly>

Под коротким именем я имею в виду что-то вроде этого:*

Type.GetType("System.Windows.Forms." + name)

Возможно ли это?

1 Ответ

1 голос
/ 14 июля 2010
  1. Получите ссылку на эту сборку, например: Assembly winForms = Assembly.Load или, возможно, LoadWithPartialName , если вы не хотите включать в нее версию. Примечание : если вы знаете, что сборка уже загружена, вы можете получить ссылку, например, typeof (Форма). Сборка

  2. использовать winForms. GetType ("System.Windows.Forms." + Name)

Поскольку вы можете запрашивать тип из определенной сборки, вам не нужно указывать полное имя типа (включая контейнер сборки)

...