如何将JsonConvert.DeserializeObject转换为接口类型

时间:2019-07-28 01:26:25

标签: c# json.net

我的代码:

var configuration = await Task.Factory.StartNew(() =>
    JsonConvert.DeserializeObject<IConfigurationService>(json));

在运行时因错误而失败:

  

Newtonsoft.Json.JsonSerializationException:'无法创建类型为..... IConfigurationService的实例。类型是接口或抽象类,无法实例化。路径'MyProperty',第2行,位置25。'

如果我将IConfigurationService替换为具体版本(实现IConfigurationService),如下所示:

var configuration = await Task.Factory.StartNew(() =>
    JsonConvert.DeserializeObject<ConfigurationService>(json));

工作正常。但这击败了使用接口的目的。如何获得反序列化才能与该界面一起使用?

假设IConfigurationService很简单:

public interface IConfigurationService
{
    string MyProperty{ get; set; }
}

我已经在Web上浏览了,看来我需要使用 JsonConverter ,但是所有示例都与MyProperty作为接口有关。

1 个答案:

答案 0 :(得分:0)

我决定不需要该界面。我只是使用了具体的课程。谢谢您的所有帮助。