Ik heb een class aangemaakt in C#, welke ik graag zou willen serializen naar XML. Dit om de data makkelijk op te kunnen slaan in een config file. Echter wanneer ik mijn class wil 'XMLSerializen' krijg ik een exception : "There was an error reflecting type 'RSS_Proxy.Configuration'.".
Om XMLSerialize te kunnen gebruiken, begreep ik dat de class sowieso een public constructor en een public modifier nodig had. Dus ik heb mijn class aangepast zodat hij deze bevatte. Ik krijg echter nog steeds dezelfde exception.
Ik heb Google afgezocht naar een oplossing van dit probleem en ik kwam een hele reeks voorbeelden tegen, welke gewoon zouden moeten werken. Deze heb ik geprobeerd te gebruiken, maar met het zelfde resultaat.
Mijn Configuration class :
Mijn code om te serializen :
Zelfs als ik mijn configuration class heel erg versimpel, door de _feeds er uit te halen, werkt het nog niet. Ik heb ook geprobeerd de '[Serializable]' tags boven de classes te zetten om aan te geven dat ze wel geserialized mogen worden.
Is er iemand die dit ooit is tegengekomen, want ik heb het gevoel dat ik iets heel simpels over het hoofd zie.
Om XMLSerialize te kunnen gebruiken, begreep ik dat de class sowieso een public constructor en een public modifier nodig had. Dus ik heb mijn class aangepast zodat hij deze bevatte. Ik krijg echter nog steeds dezelfde exception.
Ik heb Google afgezocht naar een oplossing van dit probleem en ik kwam een hele reeks voorbeelden tegen, welke gewoon zouden moeten werken. Deze heb ik geprobeerd te gebruiken, maar met het zelfde resultaat.
Mijn Configuration class :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Xml;
using System.Xml.Serialization;
namespace RSS_Proxy
{
[XmlRoot("configuration")]
public class Configuration
{
public Configuration()
{
}
[XmlElement("HTTPPortNumber")]
public int HTTPPortNumber = 8080;
[XmlElement("HTTPListenAddress")]
public IPAddress HTTPListenAddress = null;
[XmlElement("feeds")]
public Feed[] _feeds = new Feed[0];
}
public class Feed
{
[XmlAttribute("name")]
public string name;
[XmlElement("url")]
public string url;
[XmlElement("mode")]
public FetchModes mode;
[XmlElement("refreshtime")]
public int refreshtime;
public Feed(string name, string url, FetchModes mode, int refreshtime)
{
this.name = name;
this.url = url;
this.mode = mode;
this.refreshtime = refreshtime;
}
public Feed()
{
}
}
} |
Mijn code om te serializen :
code:
1
2
3
4
5
6
| public Configuration config = new Configuration();
XmlSerializer s = new XmlSerializer(typeof(Configuration));
TextWriter w = new StreamWriter(@"c:\list.xml");
s.Serialize(w, this.config);
w.Close(); |
Zelfs als ik mijn configuration class heel erg versimpel, door de _feeds er uit te halen, werkt het nog niet. Ik heb ook geprobeerd de '[Serializable]' tags boven de classes te zetten om aan te geven dat ze wel geserialized mogen worden.
Is er iemand die dit ooit is tegengekomen, want ik heb het gevoel dat ik iets heel simpels over het hoofd zie.
[ Voor 6% gewijzigd door sorted.bits op 29-01-2006 09:36 ]