Erro Ao Carregar ASP.Net Perfil
-
12-12-2019 - |
Pergunta
Eu tenho um existente MVC 4 aplicação que utiliza o AspNetSqlProfileProvider, configurado assim:
<properties>
<add name="MyTypeAs"
type="System.Collections.Generic.List`1[[My.Namespace.MyTypeA, My.Namespace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" serializeAs="Binary" />
</properties>
Agora eu gostaria de atualizar o sistema (sem remover o antigo perfis) como este:
<properties>
<add name="MyTypeAs"
type="System.Collections.Generic.List`1[[My.Namespace.MyTypeA, My.Namespace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" serializeAs="Binary" />
<add name="MyHashOfInts"
type="System.Collections.Generic.HashSet`1[System.Int32]" serializeAs="Binary" />
</properties>
Eu não tinha nenhum problema de adição de propriedades adicionais em projetos anteriores.Se os dados serializados foi a partir de uma versão anterior, onde a propriedade adicional não foi definido, carregando esse propriedade rendeu-padrão(T).No entanto, com esta alteração, quando o meu controlador executa esta linha:
List<MyTypeA> myTypeAs =
(List<MyTypeA>)HttpContext.Current.Profile.GetPropertyValue("MyTypeA");
uma Exceção é lançada:
Tentar carregar esse tipo da propriedade resultou no seguinte erro:Não foi possível carregar o tipo 'System.Coleções.Genérico.HashSet`1[Sistema.Int32]'.
Observe que eu estou fazendo referência a uma propriedade de tipo de List<MyTypeA>
mas a Exceção diz que não é possível carregar o tipo de
Do sistema.Coleções.Genérico.HashSet`1[Sistema.Int32].
Eu cometer um erro na forma como eu especificado o tipo na web.config?Existe outra causa?
Tudo isso está acontecendo no Visual Studio 2010 SP1 com o .NET 4 tempo de execução selecionado.
Solução
Acontece que, diferente de List<T>
, HashSet<T>
requer um totalmente qualificados nome de assembly.
Do sistema.Coleções.Genérico.HashSet`1[[Sistema.Int32]], Do Sistema.Núcleo, Versão=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089