2016-03-03 10 views
12

Wenn die ComponentSerializationService zu deserialisieren versuchen verwenden, werden Fehler bevölkert, dass Verweise nicht gefunden wurden:SerializationStore nicht finden Referenzen

public ICollection Deserialize(object serializationData) 
{ 
    var serializationStore = serializationData as SerializationStore; 
    var componentSerializationService = _serviceProvider.GetService(typeof(ComponentSerializationService)) as ComponentSerializationService; 
    var collection = componentSerializationService.Deserialize(serializationStore); 
} 

Fehler wie:

Typ konnte nicht ‚System.Drawing finden. Größe'. Stellen Sie sicher, dass die Assembly, die diesen Typ enthält, referenziert wird. Wenn dieser Typ ein Teil Ihres Entwicklungsprojekts ist, stellen Sie sicher, dass das Projekt erfolgreich mit den Einstellungen für Ihre aktuelle Plattform oder Any CPU erstellt wurde.

Hier habe ich ein Button-Steuerelement durchlaufen und legen Sie die Größe-Eigenschaft.

+0

Wäre gut, wenn Sie zumindest vollständige Beispiel von dem, was Sie tun, zur Verfügung gestellt. – Evk

+0

Erfolgt die Serialisierung/Deserialisierung in separaten Projekten? – Damirchi

+0

Ist Ihre Anwendung WPF oder WinForm? –

Antwort

1

Ich erinnere mich, dass ich diese "System.Drawing.Size" nicht finden konnte, einige Zeit zurück und dass ich viel zu viele Stunden damit verbrachte, es zu beheben. Ich erinnere mich nicht wirklich, was es war, das es schließlich reparierte und ich denke nicht, dass das Wählen Any CPU ein Problem überhaupt ist. Es war zwar nicht der gleiche Kontext wie Ihres, aber ich denke trotzdem, dass es sich lohnt, Folgendes zu versuchen, da es ein Problem sein könnte, verschiedene Versionen der System.Drawing.dll aus mehreren Projekten innerhalb Ihrer Lösung zu referenzieren.

Versuchen Sie also, die Lösung auf Inkonsistenzen in den verwendeten Versionen zu überprüfen (auch wenn die Einträge in packages.config in Ordnung sind) und stellen Sie sicher, dass alle auf dieselbe Version verweisen (z. B. .net461).

In meinem Fall stellte sich heraus, dass einige der mehr als 30 Bibliotheken in der Lösung .net45; Ich habe ein Tool namens Target Framework Migrator verwendet, um dies zu beheben. Sie können es über Tools => Erweiterungen und Updates => Online => Visual Studio Gallery

erhalten und geben Sie Target Framework Migrator in das Suchfeld ein.

Ich erinnere mich, dass ich .Net während meiner Versuche, das Problem zu beheben, auch auf 4.6.1 aktualisiert habe ... vielleicht könnten Sie das auch versuchen ... aber auf jeden Fall den Target Framework Migrator für Ihre eigenen Bibliotheken laufen zu lassen (und VS 2015 auf dem Weg neu starten) ist definitiv einen Versuch wert.

Viel Glück!

Verwandte Themen