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.
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)
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.
Was muss ich denn zusätzlich machen um serialsierte Lists im Designer ändern zu können? Gibt es da evtl. ein Tutorial? thx