2016-03-03 10 views
12

Quando si tenta di deserializzare utilizzando il ComponentSerializationService, gli errori sono popolate che i riferimenti non sono state trovate:SerializationStore non trovando riferimenti

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

errori come ad esempio:

Impossibile trovare il tipo System.Drawing'. Dimensione'. Assicurati che l'assembly che contiene questo tipo sia referenziato. Se questo tipo è una parte del tuo progetto di sviluppo, assicurati che il progetto sia stato creato con successo usando le impostazioni per la tua piattaforma corrente o qualsiasi CPU .

Qui ho passato un controllo Button e ho impostato la proprietà size.

+0

Sarebbe bello se fornissi almeno un esempio completo di ciò che stai facendo. – Evk

+0

La serializzazione/deserializzazione avviene in progetti seprati? – Damirchi

+0

La tua applicazione WPF o WinForm? –

risposta

1

Mi ricordo che ho avuto questo "Impossibile trovare il tipo System.Drawing.Size" qualche tempo fa e che ho passato troppe ore a risolverlo. Non ricordo davvero cosa sia stato risolto definitivamente e non penso che la scelta di Any CPU sia un problema. Anche se non era lo stesso contesto del tuo, ritengo comunque che valga la pena provare quanto segue poiché potrebbe trattarsi di un problema relativo al riferimento a diverse versioni di System.Drawing.dll da diversi progetti all'interno della tua soluzione.

Quindi, prova a verificare la soluzione per le incoerenze nelle versioni utilizzate (anche se le voci packages.config stanno funzionando correttamente) e assicurati che facciano riferimento alla stessa versione (.net461 per esempio).

Nel mio caso, alcune delle 30+ librerie della soluzione risultavano utilizzare .net45; Ho usato uno strumento chiamato Target Framework Migrator per risolvere questo problema. Puoi farlo tramite Strumenti => estensioni e aggiornamenti => Online => Visual Studio Gallery

e quindi digitare Target Framework Migrator nel campo di ricerca.

Mi ricordo che ho anche aggiornato .Net a 4.6.1 durante i miei tentativi di risolvere il problema ... forse potevi provare anche questo ... ma in ogni caso eseguendo il Migrator di Target Framework per le tue Librerie (e riavviare VS 2015 sulla strada) è sicuramente la pena di provare.

Buona fortuna!

Problemi correlati