Я хочу создать метод, который сериализует объект в файл. Чем я читаю файл и получаю контент как String. Я сохранить строку в базе данных и чем я прочитал строки из БД и I De-сериализовать его в объектне может десериализовать объект из потока, созданного из строки
Я почти сделал это, но я получаю ошибку, что there is no map for object
Это, как я сериализовать объект
public static String Serialize(Object toSerialize)
{
Random random = new Random();
int randomNumber = random.Next(100000, 1000000000);
String fileName = randomNumber + ".txt";
fileName = "EmployeeInfo.txt";
Stream stream = File.Open(fileName, FileMode.Create);
BinaryFormatter bformatter = new BinaryFormatter();
bformatter.Serialize(stream, toSerialize);
stream.Close();
String fileContent = File.ReadAllText(fileName);
return fileContent;
}
Это как преобразовать строку в поток для десериализации
String serialized = Serializer.Serialize(user);
MemoryStream mStream = new MemoryStream();
StreamWriter writer = new StreamWriter(mStream);
writer.Write(serialized);
writer.Flush();
mStream.Position = 0;
А теперь десериализации
public static Object Deserialize(Stream stream)
{
Object returnObject;
BinaryFormatter bformatter = new BinaryFormatter();
returnObject = (Object)bformatter.Deserialize(stream);
stream.Close();
return returnObject;
}
Где я могу сделать ошибку? Что я должен сделать лучше, чтобы заставить его работать?
Какой объект вы хотите сериализовать? – Tarec
, на какой строке вы получаете ошибку –
Вы не можете прочитать двоичный файл с помощью 'ReadAllText'. Используйте 'Convert.ToBase64String (File.ReadAllBytes (filename))' – I4V