【发布时间】:2015-08-10 06:07:57
【问题描述】:
我正在尝试使用 json.Net 序列化对象,但出现以下异常。
Newtonsoft.Json.JsonSerializationException: Error getting value from 'Parent' on 'System.Windows.Forms.Label+LabelAccessibleObject'. ---> System.Runtime.InteropServices.COMException: Interface not registered (Exception from HRESULT: 0x80040155)
at Accessibility.IAccessible.get_accParent()
at System.Windows.Forms.AccessibleObject.get_Parent()
at System.Windows.Forms.Control.ControlAccessibleObject.get_Parent()
at GetParent(Object )
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
这是我用来序列化的代码:
var settings = new JsonSerializerSettings();
settings.TypeNameHandling = TypeNameHandling.Objects;
Console.WriteLine(JsonConvert.SerializeObject(y), Formatting.Indented, settings);
奇怪的是,我认为异常意味着我需要添加可访问性引用,但添加它并没有解决任何问题。
还值得一提的是,在这种情况下y 是一个Label 对象。看起来序列化程序函数正在尝试读取 y 的可访问性属性并失败。
编辑:仅供参考,我已经按照网站上的建议使用包管理器安装了它,所以我怀疑它在 64 上运行 32 位或类似的东西。谢谢。
【问题讨论】:
-
你说
Serialize a Label是什么意思? -
我想将标签对象转换为 json 字符串 - 这样我就可以将其写入文件以进行持久存储
-
使用 JSON.stringify(formToJSON($('#controlid')) 进行序列化
-
我可以在 C# .net winforms 应用程序中使用它吗?我包括什么才能使用它?谢谢。
标签: c# .net winforms serialization json.net