我还没能在网上找到这方面的任何信息。我正在调试一个控制台应用程序,尝试单步调试一些代码。当我走过去时,我得到一个未找到源错误。它说'#34; AsyncExtension.cs未找到"然后给我一些细节。它说"您需要找到AsyncExtension.cs来查看当前调用堆栈帧的来源"。我在VS2015工作。我假设在幕后发生异步,它在某些时候出错,但不能给我具体细节,因为它无法找到包含AsyncExtension的程序集。但我不知道这是什么,在哪里得到它等等。特别是我试图跨过的代码如下。但我似乎在不同的方面得到了这一点,甚至在同一解决方案下调试其他项目时也是如此。
代码行:
var newObject = JsonConvert.DeserializeObject<HIDPMessage>(message.ToString());
HIDPMessage:
public class HIDPMessage
{
public string version { get; set; }
[Newtonsoft.Json.JsonProperty]
public string header { get; set; }
[Newtonsoft.Json.JsonProperty]
private Data Data { get; set; }
}
答案 0 :(得分:0)
不确定您要做什么,但您提供的代码通常不会引用任何名为AsyncExtension.cs的引用。但是,您尝试反序列化消息可能会导致JsonReaderException。
我猜测“message”是一个包含与HIDPMessage类型相同的属性的对象,并且你试图将它们提取到一个新对象中,如果是这样的话,message.ToString(),除非被覆盖,否则只返回名称类型。
您需要将对象序列化为json字符串并使用json字符串而不是message.ToString();
答案 1 :(得分:0)
感谢输入的人,你是对的,我的反序列化代码有点偏。事实证明,这个应用程序是使用VS2017构建的,并且缺少Azure SDK中的一些组件。我尝试手动安装SDK但它不会工作 - 升级到2017修复它,但我有点惊讶我必须升级才能让它工作。
我也很欣赏有关序列化内容的反馈。这对我来说是一个新的领域,我还在学习。