Ignorando versão em um nome qualificado pelo assembly passado para Type.GetType ()

9

É possível obter um Type via Type.GetType() quando o nome qualificado pelo assembly passado para GetType() especifica um Version diferente da versão da DLL que realmente foi carregada? Em caso afirmativo, qual é o comportamento de GetType() ?

Eu quero obter um Type de um assembly, independentemente da versão do assembly. Eu tenho uma função que obtém um nome qualificado pelo assembly como um argumento:

Type someType = Type.GetType(someName);

O valor someName corresponde ao Type que desejo obter, mas pode não ter o mesmo Version especificado como o que é carregado em meu aplicativo.

    
por M. Dudley 21.07.2009 в 15:55
fonte

3 respostas

1

No teste, descobri que GetType() retornará o tipo correto, mesmo que a versão do assembly atualmente carregado não corresponda ao valor do campo Version do nome qualificado pela montagem.

    
por M. Dudley 21.07.2009 / 17:44
fonte
2

Eu usei isso com sucesso:

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);
}
    
por PJC 22.10.2015 / 10:56
fonte
0

Você deve refletir sobre os assemblies do domínio atual para fazer isso.

verifique minha resposta em esta thread

    
por dmihailescu 02.09.2011 / 18:25
fonte