Игнорирование версии в имени, указанном в сборке, переданном Type.GetType () - PullRequest
12 голосов
/ 21 июля 2009

Можно ли получить Type через Type.GetType(), когда имя с указанием сборки, переданное в GetType(), указывает Version, отличную от версии DLL, которая фактически загружена? Если так, каково поведение GetType()?

Я хочу получить Type из сборки независимо от того, какая версия сборки. У меня есть функция, которая получает полное имя сборки в качестве аргумента:

Type someType = Type.GetType(someName);

Значение someName соответствует Type, которое я хочу получить, но оно может не совпадать с Version, указанным в моем приложении.

Ответы [ 3 ]

8 голосов
/ 22 октября 2015

Я успешно использовал это:

Type type = Type.GetType(typeName, AssemblyResolver, null);

private static System.Reflection.Assembly AssemblyResolver(System.Reflection.AssemblyName assemblyName)
{
    assemblyName.Version = null;
    return System.Reflection.Assembly.Load(assemblyName);
}
1 голос
/ 21 июля 2009

В ходе тестирования я обнаружил, что GetType() будет возвращать правильный тип, даже если версия загруженной в данный момент сборки не соответствует значению в поле Version имени с указанием сборки.

0 голосов
/ 02 сентября 2011

Чтобы сделать это, вы должны подумать о сборках из текущего домена.

проверьте мой ответ на этой теме

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...