【发布时间】:2016-07-08 20:14:25
【问题描述】:
我有一个类 CaptureResolution 代表相机捕获的分辨率:
[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)
{
}
}
我在给定类型的设置设计器中添加了一个设置:
但是当调用这个时
Properties.Settings.Default.ResolutionSelection = new CaptureResolution(1920, 1080);
Properties.Settings.Default.Save();
该设置未保存在用户设置文件中:
<setting name="ResolutionSelection" serializeAs="Xml">
<value />
</setting>
我可以肯定地验证该值是否已分配给设置的属性。否则程序根本无法运行。我还查看了调试器。
我也已经在互联网上搜索了合适的解决方案,但最终并没有真正帮助。保存其他设置没有任何问题。
Afaik 设置设计器需要一个可以序列化为 XML 的类和一个可公开访问的默认无参数构造函数。我都做了,所以我想知道为什么它没有按预期工作。
其他问题
如何为此自定义类型设置分配默认值?
输入new FaceDetection.Model.CaptureResolution() 会出现异常。
【问题讨论】: