[C#] XmlSerializer : erreur d'execution
Bonjour,
Je suis sous VS2005 express en .NET 2.0
J'ai un bout de code tout simple qui marchait et qui ne fonctionne plus, sans que j'y touche. J'ai par contre touché à mon environnement de développement : installe du SDK .NET 2.0, puis déinstallation et réinstallation complete de VS2005 express.
la ligne de code qui pose probleme est la suivante :
Citation:
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Weather));
l'erreur levée à l'execution est la suivante :
Citation:
The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)
Une exception de première chance de type 'System.IO.FileLoadException' s'est produite dans mscorlib.dll
la classe "Weather" est une classe à moi qui stock les infos de météo du site www.weather.com (que je récupère en XML via HTTP et que je transforme en objet via la deserialization). Ci joint la classe concernée, ça peut servir à d'autres...
Citation:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.Net;
using System.IO;
namespace Xtream_ToolBox.Sensors {
[XmlRoot("weather")]
public class Weather {
private const String serviceUrl = "http://xoap.weather.com/weather/local/";
private const String partner_id = "xxxxxx";
private const String license_key = "xxxxxx";
public static String unit_metric = "m";
public static String unit_standard = "s";
[XmlElement("head")]
public TWC_Header header;
[XmlElement("loc")]
public TWC_Location currentLocation;
[XmlElement("cc")]
public TWC_CC currentCondition;
// default constructor
public Weather() {
}
public static Weather getCurrentConditionWeather(String codeLocation, String unit) {
Weather weather = null;
try {
Uri uri = new Uri(serviceUrl + codeLocation + "?cc=&prod=xoap&par=" + partner_id + "&key=" + license_key + "&unit=" + unit);
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Weather));
WebResponse webResponse = HttpWebRequest.CreateDefault(uri).GetResponse();
Stream stream = webResponse.GetResponseStream();
weather = (Weather)xmlSerializer.Deserialize(stream);
stream.Close();
} catch (InvalidOperationException invalidOperationException){
Console.WriteLine(invalidOperationException.Message);
} catch (Exception exception) {
Console.WriteLine(exception.Message);
}
return weather;
}
}
public class TWC_Header {
[XmlElement("locale")]
public String locale;
[XmlElement("form")]
public String form;
[XmlElement("ut")]
public String ut;
[XmlElement("ud")]
public String ud;
[XmlElement("us")]
public String us;
[XmlElement("up")]
public String up;
[XmlElement("ur")]
public String ur;
}
public class TWC_Location {
[XmlElement("dnam")]
public String name;
[XmlElement("tm")]
public String time;
[XmlElement("lat")]
public String latitude;
[XmlElement("lon")]
public String longitude;
[XmlElement("sunr")]
public String sunRise;
[XmlElement("suns")]
public String sunSet;
[XmlElement("zone")]
public String zone;
}
public class TWC_CC {
[XmlElement("lsup")]
public String lsup;
[XmlElement("obst")]
public String obst;
[XmlElement("tmp")]
public String tmp;
[XmlElement("flik")]
public String flik;
[XmlElement("t")]
public String t;
[XmlElement("icon")]
public String icon;
[XmlElement("bar")]
public TWC_Bar bar;
[XmlElement("wind")]
public TWC_Wind wind;
[XmlElement("hmid")]
public String hmid;
[XmlElement("vis")]
public String vis;
[XmlElement("uv")]
public TWC_Uv uv;
[XmlElement("dewp")]
public String dewp;
[XmlElement("moon")]
public TWC_Moon moon;
}
public class TWC_Bar {
[XmlElement("r")]
public String r;
[XmlElement("d")]
public String d;
}
public class TWC_Wind {
[XmlElement("s")]
public String s;
[XmlElement("gust")]
public String gust;
[XmlElement("d")]
public String d;
[XmlElement("t")]
public String t;
}
public class TWC_Uv {
[XmlElement("i")]
public String i;
[XmlElement("t")]
public String t;
}
public class TWC_Moon {
[XmlElement("icon")]
public String icon;
[XmlElement("t")]
public String t;
}
}
la classe "XmlSerializer" étant une classe du framework, je ne voit pas bien que faire. Si qqun a déjà eu le probleme je suis prenneur.
merci d'avance