Autor Beitrag
MaPEC
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 04.01.13 16:39 
Hallo,
ich möchte eine Klasse serialisieren die wie folgt aufgebaut ist:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
public class ConfigSet
{
  public string configCategory;
  public string configName;
  public string configValue;

  public string Category
  {
    get { return configCategory; }
    set { configCategory = value; }
  }

  public string Name
  {
    get { return configName; }
    set { configName = value; }
  }

  public string Value
  {
    get { return configValue; }
    set { configValue = value; }
  }
}


Die Serialisierung realisiere ich wie folgt:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
try
{
  XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
  xmlWriterSettings.Indent = true;
  FileStream fs = new FileStream(fileName, FileMode.CreateNew);
  Type t = typeof(List<ConfigSet>);
  XmlSerializer serializer = new XmlSerializer(t.GetType());
  XmlWriter xmlWriter = XmlWriter.Create(fs, xmlWriterSettings);
  serializer.Serialize(xmlWriter, configSetList);  
}
catch (Exception E)
{
  MessageBox.Show(E.Message);
}


Beim Anlegen der Klasse "serializer" bekomme ich immer die folgende Fehlermeldung:
"Auf 'System.RuntimeType' kann aufgrund der Sicherheitsebene nicht zugegriffen werden. Nur öffentliche Typen können verarbeitet werden."

Weiss evtl. jemand was ich falsch mache?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 04.01.13 16:47 
Hallo MaPEC und :welcome:

du verwendest mit t.GetType() den Typen des Typen ;-)
Da t ja schon der Typ ist, einfach
ausblenden C#-Quelltext
1:
2:
Type t = typeof(List<ConfigSet>);
XmlSerializer serializer = new XmlSerializer(t);
MaPEC Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 04.01.13 17:04 
Hallo Th69,

ah soo! Vielen Dank für die schnelle Antwort und den Tip.
Hab es geändert und klappt! Klasse!!