我正在尝试将窗口位置保存为用户设置,以便在应用启动时还原它。我使用此类型的设计器添加了一个设置:
using System.Configuration;
namespace MyApp.Framework
{
[SettingsSerializeAs(SettingsSerializeAs.Xml)]
public class SavedWindowSettings
{
public double Left { get; set; }
public double Top { get; set; }
public SavedWindowSettings()
{
}
public SavedWindowSettings(double left, double top)
{
Left = left;
Top = top;
}
}
}
它会编译,但当我运行时,
System.NotImplementedException: 'The method or operation is not implemented.'
但调用堆栈中的最后一项是
PresentationFramework.dll!System.Windows.Baml2006.Baml2006SchemaContext.ResolveBamlType(System.Windows.Baml2006.Baml2006SchemaContext.BamlType bamlType, short typeId)
这没有多大帮助。我认为这与App.config有关。如果我将设置的类型更改为string,我的App.config
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="MyApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
和
<userSettings>
<MyApp.Properties.Settings>
<setting name="MainWindowPlacement" serializeAs="String">
<value />
</setting>
</MyApp.Properties.Settings>
</userSettings>
节。我试着把它们加回去,把serializeAs
改为xml
,但还是有同样的例外。我遗漏了什么?
2条答案
按热度按时间xe55xuns1#
第一件值得注意的事情是没有为
Left
和Top
定义setter。异常可能来自运行时报告,即没有设置属性的方法。
dz6r00yl2#
在尖叫了很多次之后,我发现在我安装了PrettyBin之后,我的一个libs不工作了。不知道是什么,在哪里或者为什么,我喜欢自己弄清楚事情,但是我几乎是在尝试随机的事情。无用的错误消息:)