Hirdetés

2024. június 24., hétfő

Gyorskeresés

Hozzászólások

(#8293) DrojDtroll válasza DrojDtroll (#8292) üzenetére


DrojDtroll
addikt

Ezt a problémát megoldottam úgy hogy csináltam egy osztály ami egyetlen color field-et tartalmaz.

Most a serializációval küszködök.

A Class amit el kellene menteni.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;

namespace raw_data
{
[Serializable]
public class ColorPalette : Data.ISeriazable
{
private List<Imaging.RefColor> _colorList;

public string SerializedName { get; set; }
public ColorPalette()
{
ColorList = new List<Imaging.RefColor>();

ColorList.Add(new Imaging.RefColor(Settings.ColorPalette.Default.DefaultMin));
ColorList.Add(new Imaging.RefColor(Settings.ColorPalette.Default.DefaultMax));
SerializedName = Settings.Folder.Default.ColorPalette + Path.AltDirectorySeparatorChar + System.IO.Directory.GetFiles(Settings.Folder.Default.ColorPalette).Length;
}

public List<Imaging.RefColor> ColorList { get => _colorList; set => _colorList = value; }
public Lut lut { get; set; }

public string GetSerializedName()
{
return SerializedName;
}

}
}

A serializálást végző függvény:
public static void SerializeObject(Data.ISeriazable obj)
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(obj.GetSerializedName(),
FileMode.Create,
FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
}

A visszatöltés metódusa
internal static void LoadSerializedPalettes(GroupBox colorPaletteGroupBox)
{

string[] serializedfilenames=Directory.GetFiles(Settings.Folder.Default.ColorPalette);
foreach (var item in serializedfilenames)
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(item,
FileMode.Open,
FileAccess.Read,
FileShare.Read);
ColorPalette cp = (ColorPalette)formatter.Deserialize(stream);
stream.Close();
ColorPaletteSettings.ColorPaletteList.Add(cp);
AddNewPalatte(colorPaletteGroupBox, cp);
}
}

Nem töltődnek rendesen vissza az objektumok. A stream még rendesen megvan. Debugban látom, hogy a hossza olyan mint amilyennek lennie kell.

:( Mitől lehet, hogy mégis null-t kapok?

Copyright © 2000-2024 PROHARDVER Informatikai Kft.