Laden...

UserControl Serialisierungsproblem

Erstellt von aime2code vor 14 Jahren Letzter Beitrag vor 12 Jahren 5.378 Views
A
aime2code Themenstarter:in
49 Beiträge seit 2007
vor 14 Jahren
UserControl Serialisierungsproblem

Hallo,

ich wollte ein neues UserControl entwickeln, habe ein paar kleine Klassen (mit Vererbung) und zusätzlich eine Host-Anwendung erstellt, um es zu testen. Aber sobald ich das Control auf die Form ziehen will, kommt diese Fehlermeldung:


Microsoft Visual Studio

Fehler beim Erstellen der Komponente DiskView. Die Fehlermeldung:

System.Runtime.Serialization.SerializationException: Der Typ "DiskViewBox.DiskViewItem" in Assembly "DiskViewBox, Version=1.0.3401.18107, Culture=neutral, PublicKeyToken=null" ist nicht als serialisierbar gekennzeichnet.

bei System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)

bei System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)

bei System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()

bei System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)

bei System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)

bei System.Runtime.Serial...


OK

Ich hab wirklich kein Plan was das sein soll.

Das Projekt ist sehr klein und ich würde mich freuen, wenn ihr reinschauen würdet.
Ich hab erst grad angefangen.

3.003 Beiträge seit 2006
vor 14 Jahren

Hm, in der Fehlermeldung steht doch alles, was du wissen musst.


namespace DiskViewBox
{
    [Serializable] //<- DiskViewItem als serialisierbar markieren löst dein Problem
    public class DiskViewItem
    {
        protected Point position;

        public Point Position
        {
            get { return position; }
            set { position = value; }
        }
    }
}

Gruß,

LaTino
EDIT: btw, dieses Posting gehört nach Windows.Forms...

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

830 Beiträge seit 2005
vor 14 Jahren

Hallo aime2code,

entweder die Eigenschaft Items so


[System.ComponentModel.DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public List<DiskViewItem> Items {
	get { return items; }
	set { items = value; }
}

markieren, oder die DiskViewItem-Klasse serialisierbar, also für den Designer "speicherbar" machen. Das ist allerdings nicht ganz so trivial, wenn das alles im Designer bearbeitbar gemacht werden soll.

Gruss
Friedel

Ohne Ziel ist auch der Weg egal.

A
aime2code Themenstarter:in
49 Beiträge seit 2007
vor 14 Jahren

Das ist ja interessant. Wusste ich gar nicht.

Danke euch beiden. 😃

B
375 Beiträge seit 2007
vor 12 Jahren

Was muss ich denn zusätzlich machen um serialsierte Lists im Designer ändern zu können? Gibt es da evtl. ein Tutorial? thx