Serializacja XML

0

Mam taki kodzik na serializację

namespace sklep
{
      public partial class baza_klientow : Window
    {
        
        private List<klienci> m_klienciList = null;
        public klienci ss = new klienci(1, "a", "", "", "", "", "", 1, "", "", "");

        public baza_klientow()
        {
            InitializeComponent();
            InitBinding();
        }

        private void InitBinding()
        {
            m_klienciList = new List<klienci>();
            m_klienciList.Add(new klienci(1, "a", "", "", "", "", "", 1, "", "", ""));
            dataGrid_klienci.ItemsSource = m_klienciList;
        }

         public static T Load<T>(string FileSpec)
        {
            XmlSerializer formatter = new XmlSerializer(typeof(T));

            using (FileStream aFile = new FileStream(FileSpec, FileMode.Open))
            {
                byte[] buffer = new byte[aFile.Length];
                aFile.Read(buffer, 0, (int)aFile.Length);

                using (MemoryStream stream = new MemoryStream(buffer))
                {
                    return (T)formatter.Deserialize(stream);
                }
            }

        }

        public static void Save<T>(T ToSerialize, string FileSpec)
        {
            Directory.CreateDirectory(FileSpec.Substring(0, FileSpec.LastIndexOf('\\')));
            FileStream outFile = File.Create(FileSpec);
            XmlSerializer formatter = new XmlSerializer(typeof(T));

            formatter.Serialize(outFile, ToSerialize);
            outFile.Close();
        }

        private void btn_dodajKlienta_Click(object sender, RoutedEventArgs e)
        {
        }

        private void btn_wyszukajKlienta_Click(object sender, RoutedEventArgs e)
        {
            Save<klienci>(ss, "klienci.xml");
        }

        private void btn_modyfikujKlienta_Click(object sender, RoutedEventArgs e)
        {

        }
    }
}
} 

i niestety jest błąd z którym nie mogę sobie dać rady, a mianowicie "public klienci ss = new klienci..." podkreśla to ss i nie chce mi przyjąć jako public a private znów nie może być

1

A co ci mówi Error List?

0

Pole "klienci" jest mniej dostępne niż pole "baza_klientow.ss"

Najdziwniejsze że mam ten kod w dwóch różnych plikach i w jednym jest ok a w drugim nie.

0

Czyli błąd nie jest w żadnej serializacji, tylko w tym, co teraz dopisałeś - dostępność klasy klienci. baza_klientow jest klasą publiczną, ss jest polem publicznym, więc cały świat może sobie z niego korzystać. Natomiast klasa klienci najwyraźniej nie jest publiczna, więc klasy niemające dostępu do niej nie umiałyby jednak skorzystać z pola ss, bo nie wiedzą, jakiego jest typu.

2

Wujek dobra rada: Weź sobie wyrzuć ten pakiet lokalizacyjny z Visualla, to będzie ci dużo łatwiej szukać rozwiązań błędów, np na stackoverflow.com, przez co nie będziesz musiał tracić czasu na stanie w miejscu z problemami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1