Ошибка при сериализации объекта с помошью 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);
}
}