Ошибка при сериализации объекта с помошью XmlSerializer - C#
Формулировка задачи:
Всем доброго времени суток.
Работаю над созданием сетевого приложения клиент-сервер, одной из функций которого является передача файлов. При передаче должна использоваться сериализация информации о файле с последующей ее передачей, а затем и файла. Проблема состоит в том что сериализация не происходит. Пример который был найден в МСДН выдает следующую ошибку указывая на созданный сериализатор:
ConsoleApplication5.Program is inaccessible due to its protection level. Only public types can be processed
Вопрос в следующем, что я не так делаю? Пробовал кстати использовать функции set и get, результат не изменился. Заранее благодарен за ответы. Вот сам пример:
using System; using System.IO; using System.Xml.Serialization; namespace ConsoleApplication5 { class Program { public class OrderedItem { public string ItemName; public string Description; public decimal UnitPrice; public int Quantity; public decimal LineTotal; // A custom method used to calculate price per item. public void Calculate() { LineTotal = UnitPrice * Quantity; } } public class Test { public static void Main(string[] args) { Test t = new Test(); // Write a purchase order. t.SerializeObject("simple.xml"); } private void SerializeObject(string filename) { Console.WriteLine("Writing With Stream"); XmlSerializer serializer = new XmlSerializer(typeof(OrderedItem)); OrderedItem i = new OrderedItem(); i.ItemName = "Widget"; i.Description = "Regular Widget"; i.Quantity = 10; i.UnitPrice = (decimal)2.30; i.Calculate(); // Create a FileStream to write with. Stream writer = new FileStream(filename, FileMode.Create); // Serialize the object, and close the TextWriter serializer.Serialize(writer, i); writer.Close(); } } } }
Решение задачи: «Ошибка при сериализации объекта с помошью XmlSerializer»
textual
Листинг программы
private static void SerializeObject(string filename) { Console.WriteLine("Writing With Stream"); OrderedItem i = new OrderedItem(); i.ItemName = "Widget"; i.Description = "Regular Widget"; i.Quantity = 10; i.UnitPrice = (decimal)2.30; i.Calculate(); using (Stream s = File.Create(filename + ".bin")) { var f = new BinaryFormatter(); f.Serialize(s, i); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д