ich die Klasse haben CaptureResolution
die Auflösung für eine Kamera-Capture darstellt:Benutzerdefinierte Art nicht in Anwendung Einstellungen zu speichern
[Serializable]
[SettingsSerializeAs(SettingsSerializeAs.Xml)]
[XmlRoot (ElementName = "CaptureResolution", IsNullable = false)]
public class CaptureResolution: ApplicationSettingsBase
{
[UserScopedSetting]
[SettingsSerializeAs(SettingsSerializeAs.Xml)]
[XmlAttribute (AttributeName = "Width")]
public int Width { get; set; }
[UserScopedSetting]
[SettingsSerializeAs(SettingsSerializeAs.Xml)]
[XmlAttribute(AttributeName = "Height")]
public int Height { get; set; }
public CaptureResolution(int width, int height)
{
Width = width;
Height = height;
}
public CaptureResolution(): this(1024, 720)
{
}
}
ich eine Einstellung in den Einstellungen Designer mit dem angegebenen Typ hinzugefügt:
jedoch beim Aufruf dieses
Properties.Settings.Default.ResolutionSelection = new CaptureResolution(1920, 1080);
Properties.Settings.Default.Save();
Die Einstellung wird nicht in der Benutzereinstellungsdatei gespeichert:
<setting name="ResolutionSelection" serializeAs="Xml">
<value />
</setting>
ich sicher überprüfen kann, dass der Wert auf die Einstellung der Eigenschaft zugeordnet ist. Ansonsten würde das Programm überhaupt nicht funktionieren. Ich habe auch einen Blick auf den Debugger geworfen.
Auch ich suchte bereits im Internet nach geeigneten Lösungen, aber am Ende hat es nicht wirklich geholfen. Andere Einstellungen werden ohne Probleme gespeichert.
Afaik Der Einstellungsdesigner benötigt eine Klasse, die nach XML serialisiert werden kann, und einen parameterlosen Standardkonstruktor, der öffentlich zugänglich ist. Ich habe beides gemacht, also frage ich mich, warum es nicht wie geplant funktioniert.
Zusätzliche Frage
Wie kann ich einen Standardwert dieser benutzerdefinierten Typ Einstellung zuweisen? Die Eingabe new FaceDetection.Model.CaptureResolution()
endet in einer Ausnahme.
Danke. Lief wie am Schnürchen. – chris579