C# 无法应用属性类';JsonConverter';因为它是抽象的
我正在使用Newtonsoft JSON库,并尝试反序列化JSON。问题是,当我使用C# 无法应用属性类';JsonConverter';因为它是抽象的,c#,json,json.net,C#,Json,Json.net,我正在使用Newtonsoft JSON库,并尝试反序列化JSON。问题是,当我使用[JsonConverter(typeof(StringEnumConverter))]时,我得到了一个错误:无法应用属性类“JsonConverter”,因为它是抽象的 以下是我的课程: public class ActionRepository { [JsonConverter(typeof(StringEnumConverter))] public enum AllowedActions
[JsonConverter(typeof(StringEnumConverter))]
时,我得到了一个错误:无法应用属性类“JsonConverter”,因为它是抽象的
以下是我的课程:
public class ActionRepository
{
[JsonConverter(typeof(StringEnumConverter))]
public enum AllowedActions
{
FINDWINDOW,
}
public enum AllowedParameters
{
WINDOWNAME,
}
}
public class Action
{
public AllowedActions Name { get; set; }
public List<Parameter> Parameters { get; set; }
}
公共类ActionRepository
{
[JsonConverter(类型(StringEnumConverter))]
公共枚举允许的操作
{
芬德温道,
}
公共枚举允许的参数
{
WINDOWNAME,
}
}
公共集体诉讼
{
公共允许的操作名称{get;set;}
公共列表参数{get;set;}
}
我得到了JsonConverter
下面的曲线
编辑:如果我导航到该类(ctrl+单击VS),JsonConverter类实际上是抽象的。我正在使用.NET for Windows Universal。问题似乎是,当不是针对.NET framework应用程序时,JsonConverter
类被标记为抽象类
看起来是使用JsonConvert
作为替代方案。这是一个愚蠢的想法,但由于它是抽象的,如果您只创建自己的子类并使用它会怎么样?[JsonConverter(typeof(StringEnumConverter))]
不应用JsonConverter
类型的属性,它应用非抽象的属性。根据:惯例,属性类的命名带有后缀attribute
。表单类型名称的属性名称可以包含或省略此后缀。如果一个属性类既有后缀也没有后缀,则会出现歧义,并导致编译时错误。因此,IDE不知何故认为应用了JsonConverter
,而不是JsonConverterAttribute
,这很奇怪。这里可能有IDE错误?