2010-09-01 2 views
1

У меня есть 2 файла DTO, один из которых является подклассом другого. Поля на супер-класса являются следующие:Проблема Json в подклассе

[JsonProperty] 
protected int financialFormatHeaderID; 

[JsonProperty] 
protected string financialFormatHeaderCode; 

[JsonProperty] 
protected string description = string.Empty; 

[JsonProperty] 
protected FinancialFormatPurpose purpose = FinancialFormatPurpose.Standard; 

[JsonProperty] 
protected IList<FinancialFormatDetailDto> details = new List<FinancialFormatDetailDto>(); 

[JsonProperty] 
protected bool active = true; 

Суб-класс имеет следующее:

public RecoveryFormatHeaderDto() 
    : base() { 
    this.purpose = FinancialFormatPurpose.Recovery; 
} 

[JsonProperty] 
private bool isPerSquareArea; 

Они оба имеют JSONObject (MemberSerialization.OptIn) и Сериализуемые атрибуты над именем класса (но под пространством имен).

Моя проблема заключается в том, что, когда я пытаюсь сохранить экземпляр суб-класса, я получаю следующее сообщение об ошибке:

Newtonsoft.Json.JsonSerializationException was unhandled by user code

Message=A member with the name 'financialFormatHeaderID' already exists on 'RecoveryFormatHeaderDto'. Use the JsonPropertyAttribute to specify another name.

Source=Newtonsoft.Json

Что здесь происходит? Как это исправить?

EDIT: сигнатуры класса являются следующие:

public class FinancialFormatHeaderDto 
public class RecoveryFormatHeaderDto : FinancialFormatHeaderDto 
+0

Как выглядят подписи вашего класса? – StriplingWarrior

ответ

0

Хотя я не знаю, Json.NET, мое предположение было бы, что проблема в некоторой степени связана с, что у вас есть JsonObjectAttribute (MemberSerialization.OptIn) на обоих классах. Возможно, вам стоит попробовать удалить этот атрибут из подкласса и посмотреть, помогает ли он.

Смежные вопросы