Zdravím. Mám problém. Potřeboval bych na webu serializovat jisté třídy. Mám třídu k serializaci:
public class MySerializer<T> where T : new()
{
XmlSerializer Serializer_;
T Value_;
string FileName_;
// další proměnné
protected MySerailizer(string FileName)
{
FileName_ = FileName;
Serializer_ = new XmlSerializer(typeof(T));
}
public T Load()
{
// nějaké podmínky
using(FileStream stream = File.Open(FileName_, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
Value_ = (T)Serializer_.Deserialize(stream);
}
}
public void Save()
{
// nějaké podmínky
using(FileStream stream = File.Create(FileName_))
{
Serializer_.Serailize(Filestream1, Value_);
}
}
//další kód
}
A vše šlape jak po másle. Ale nedávno jsem se rozhodnul, použít binární serializaci, a kód jsem jen nepatrně upravil. (změnil typ serializace):
public class MySerializer<T> where T : new()
{
BinaryFormatter Serializer_;
T Value_;
string FileName_;
// další proměnné
protected MySerailizer(string FileName)
{
FileName_ = FileName;
Serializer_ = new BinaryFormatter ();
}
public T Load()
{
// nějaké podmínky
using(FileStream stream = File.Open(FileName_, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
Value_ = (T)Serializer_.Deserialize(stream);
}
}
public void Save()
{
// nějaké podmínky
using(FileStream stream = File.Create(FileName_))
{
Serializer_.Serailize(Filestream1, Value_);
}
}
//další kód
}
A najednou, to nefunguje. Vytvoří se binární soubory, v nich nějaký ten binární balast, ale data která se tam mají uložit tam nejsou. (Jsou tam jen cca 2 řádky, různé názvy namespace, tříd, ...) Poradíte mi někdo prosím, jak problém vyřešit? Díky moc
|