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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top