XAML 尝试使用用户设置的自定义类时出现NotImplementedException

t30tvxxf  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(111)

我正在尝试将窗口位置保存为用户设置,以便在应用启动时还原它。我使用此类型的设计器添加了一个设置:

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,但还是有同样的例外。我遗漏了什么?

xe55xuns

xe55xuns1#

第一件值得注意的事情是没有为LeftTop定义setter。

public double Left { get; set; }
public double Top { get; set; }

异常可能来自运行时报告,即没有设置属性的方法。

dz6r00yl

dz6r00yl2#

在尖叫了很多次之后,我发现在我安装了PrettyBin之后,我的一个libs不工作了。不知道是什么,在哪里或者为什么,我喜欢自己弄清楚事情,但是我几乎是在尝试随机的事情。无用的错误消息:)

相关问题