2015-11-23 4 views
0

моя XML-сериализация не работает.Xml-Serialization не работает

Следующий код выдает исключение:

XmlSerializer x = new XmlSerializer(typeof(GeneralSettings)); 

Я думаю, что-то случилось с моим классом GeneralSettings? Я не могу понять, в чем проблема.

Класс, который должен быть сериализовать:

[Serializable()] 
class GeneralSettings 
{ 
    // ---------------------------------------------------------------// 
    #region Properties for settings 
    // ---------------------------------------------------------------// 
    public string ActiveLanguage { get; set; } 

    public string ActiveLeague { get; set; } 

    // ---------------------------------------------------------------// 
    #endregion 
    // ---------------------------------------------------------------// 

    // ---------------------------------------------------------------// 
    #region Constructors 
    // ---------------------------------------------------------------// 

    public GeneralSettings() 
    { 
     this.ActiveLanguage = "English"; 
     this.ActiveLeague = ""; 
    } 

    // ---------------------------------------------------------------// 
    #endregion 
    // ---------------------------------------------------------------// 
} 

Мой BaseSettings класс для сериализации и десериализации

class BaseSettings 
{ 
    protected static string FileName 
    { 
     get 
     { 
      return Path.Combine(Environment.CurrentDirectory, @"Settings\XML\GeneralSettings.xml"); 
     } 
    } 

    public static GeneralSettings Load() 
    { 
     using (var stream = new FileStream(FileName, FileMode.Open)) 
     { 
      return (GeneralSettings)new XmlSerializer(typeof(GeneralSettings)).Deserialize(stream); 
     } 
    } 

    public static void Save(GeneralSettings settings) 
    { 
     using (var stream = new FileStream(FileName, FileMode.Open)) 
     { 
      XmlSerializer x = new XmlSerializer(typeof(GeneralSettings)); 
      x.Serialize(stream, settings); 
     } 

    } 

Заранее спасибо за помощь!

+2

Что является исключением, что вы получаете? –

+0

Необходимо увидеть xml. – jdweng

ответ

3

Класс должен быть общедоступным для сериализации через класс XmlSerializer.

Изменить определение класса это:

public class GeneralSettings 
{ 

    ... 

} 
+1

+1. Это то, что он должен был видеть при запуске кода; так как это дало бы ему ошибку, как «GeneralSettings» недоступен из-за уровня защиты. Только публичные типы могут быть обработаны. ' – rbm

+0

Хорошо, это было легко, спасибо! Я приму этот ответ, как только смогу – FKutsche

Смежные вопросы