C# 动态属性的名称已用作打开类型的声明属性名称
我有一个实体,看起来像这样:C# 动态属性的名称已用作打开类型的声明属性名称,c#,odata,C#,Odata,我有一个实体,看起来像这样: public class Item { public int Id { get; set; } public IDictionary<string, object> Settings { get; set; } } 我不希望这样做,因为我的JSON可能有一个同名的属性,这将导致错误:动态属性“Id”的名称已经用作open类型的声明属性名称 如何禁用OData所做的对开放类型的自动映射?解决方案是创建一个单独的实体。这将返回所需的结果
public class Item
{
public int Id { get; set; }
public IDictionary<string, object> Settings { get; set; }
}
我不希望这样做,因为我的JSON可能有一个同名的属性,这将导致错误:动态属性“Id”的名称已经用作open类型的声明属性名称
如何禁用OData所做的对开放类型的自动映射?解决方案是创建一个单独的实体。这将返回所需的结果
public class Item
{
public int Id { get; set; }
public OpenType Settings { get; set; }
}
public class OpenType
{
public IDictionary<string, object> Settings { get; set; }
}
公共类项目
{
公共int Id{get;set;}
公共OpenType设置{get;set;}
}
公共类OpenType
{
公共IDictionary设置{get;set;}
}
参见msdn:
public class Item
{
public int Id { get; set; }
public OpenType Settings { get; set; }
}
public class OpenType
{
public IDictionary<string, object> Settings { get; set; }
}