我表示對相機拍攝分辨率類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()
以異常結束。
謝謝。像魅力一樣工作。 – chris579