0

我正在从注册表中读取所有已安装的软件。它在所有经过测试的计算机上都能正常工作,除了一台给我带来以下问题的计算机。

它正确地从注册表中读取数据并将正确的数据放入类的正确字段中。我放了很多 MessageBox.Show() 命令来查看返回的内容,这一切似乎都是正确的。

regKey 的显示名称 = Foxit Reader

卸载字符串 = C:\Program Files (x86)\Foxit Software\Foxit Reader\Uninstall.exe

当我在消息框中输入值(在 C# 中)但当我将 JsonConvert.SerializeObject 放入对象时,我得到了这个

    public int ID { get; set; }

    public int AssetID { get; set; }

    public string DisplayName { get; set; }

    public string DisplayVersion { get; set; }

    public string Publisher { get; set; }

    public string RegKey { get; set; }

    public string UninstallString { get; set; }

    public string InstallDate { get; set; }

    public bool IsActive { get; set; }

它最终看起来像这样:

{"ID":0,"AssetID":7,"DisplayName":"Foxit Reader\u0000\u0000\u0000\u0000\\Microso","DisplayVersion":"0.0.0.0","Publisher":null,"RegKey":"Foxit Reader","UninstallString":"C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\Uninstall.exe\u0000Fox-Ä~vÊ\u0000\u000f¦\u0000\u0000\u0010\u0000üú\u0018\u0000¼þ\u0018\u0000\u0010«¯v\u0001\u0000\u0000\u0000¬ž|vÎ|vÄû\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000€\u001a\u0000\u0000","InstallDate":"Jan 1 1980","IsActive":true} 

我放了以下内容:

        // Encrypt the class
        var serializerSettings = new JsonSerializerSettings();
        serializerSettings.StringEscapeHandling = StringEscapeHandling.EscapeNonAscii;


        string serializedClass = JsonConvert.SerializeObject(this, serializerSettings);

代码到位(之前只是:

string serializedClass = JsonConvert.SerializeObject(this);

我能做些什么来摆脱所有的垃圾?当我将它传递给我的 API 以插入数据库时​​,我收到了无效的格式错误。

任何帮助,将不胜感激。提前致谢。

4

0 回答 0