Frage

Ich habe eine vorhandene MVC 4-Anwendung, die den AspNetSqlProfileProvider verwendet und wie folgt konfiguriert ist:

<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>

Jetzt möchte ich das System wie folgt aktualisieren (ohne die alten Profile zu entfernen):

<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>

Ich hatte in früheren Projekten kein Problem damit, zusätzliche Eigenschaften hinzuzufügen.Wenn die serialisierten Daten aus einer früheren Version stammten, in der die zusätzliche Eigenschaft nicht definiert wurde, ergab das Laden dieser Eigenschaft Standard (T).Wenn mein Controller jedoch mit dieser Änderung diese Zeile ausführt:

List<MyTypeA> myTypeAs = 
     (List<MyTypeA>)HttpContext.Current.Profile.GetPropertyValue("MyTypeA");

Es wird eine Ausnahme ausgelöst:

Der Versuch, den Typ dieser Eigenschaft zu laden, führte zu folgendem Fehler:Der Typ „System.Collections.Generic.HashSet`1[System.Int32]“ konnte nicht geladen werden.

Beachten Sie, dass ich auf eine Eigenschaft vom Typ verweise List<MyTypeA> aber die Ausnahme besagt, dass der Typ nicht geladen werden kann

System.Collections.Generic.HashSet`1[System.Int32].

Habe ich bei der Angabe des Typs in web.config einen Fehler gemacht?Gibt es eine andere Ursache?

All dies geschieht in Visual Studio 2010 SP1 mit ausgewählter .NET 4-Laufzeitumgebung.

War es hilfreich?

Lösung

Es stellt sich heraus, dass es anders ist List<T>, HashSet<T> erfordert einen vollständig qualifizierten Assemblynamen.

System.Collections.Generic.HashSet`1[[System.Int32]], System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top