Serializace   zodpovězená otázka

ASP.NET WebForms

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

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Všechny typy uvnitř třídy, kterou chcete serializovat, musí být serializovatelné (atribut Serializable).

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jsou tímto atributem označené. XML Serializace probíhá bez problému. Ten nastává až při použití BinaryFormatter

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ou... U jedné třídy jsem to zapomněl. Dopsal jsem to tam, a vše je OK. Moc díky za pomoc ;)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback