Testare la System.Runtime.Serialization di Silverlight

Sto migrando le mie classi base che implementano il model alle corrispondenti versioni “light”, in modo da poter referenziare il model anche nei progetti Silverlight. Normalmente io uso il DataContractSerializer e per questo ho bisogno di referenziare la System.Runtime.Serialization.dll:

Alcune classi sono marcate abstract e per poterle testare ho inserito alcune classi di “mocking” che non fanno altro che ereditare la classe base.

Se queste classi di “mocking” sono inserite nel Test Project, all’esecuzione dei test avremo questa eccezione:

Unit Test Adapter threw exception: Could not load file or assembly 'System.Runtime.Serialization, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The system cannot find the file specified..   

Il problema è che lo Unit Test Adapter cerca la versione “light” della dll, mentre il progetto referenzia la versione “full”. Le soluzioni sono due:

  • Spostare le classi di “mocking” in una class library standard;
  • Referenziare a mano la dll light da “C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0\System.Runtime.Serialization.dll”;

La solzuione più pulita è decisamente la prima, ma va a gusti.

Print | posted on giovedì 17 settembre 2009 15:45

Comments have been closed on this topic.