Настройте JSON.NET для игнорирования атрибутов DataContract / DataMember

Мы сталкиваемся с ситуацией в проекте MVC3 с сериализаторами Microsoft JSON и JSON.NET.

Всем известно, что DateTime'ы в основном не работают в сериализаторах Microsoft, поэтому мы перешли на JSON.NET, чтобы избежать этой проблемы. Это прекрасно работает, за исключением того, что некоторые классы, которые мы пытаемся сериализовать, являются POCO с атрибутами DataContract / DataMember. Они определены в сборке, на которую ссылаются в нескольких местах. Кроме того, они имеют некоторые другие свойства отображения, которые не помечены как DataMembers для эффективности. Например, Клиент

[DataContract]
public class Customer
{
   [DataMember]
   public string FirstName { get; set;}
   [DataMember]
   public string LastName { get; set;}
   public string FullName 
   {
       get
       {  return FirstName + " " + LastName; }
   }

}

Когда этот клиент передается через WCF, клиентская сторона может ссылаться на эту сборку и использовать FullName просто отлично, но при сериализации с JSON.NET она видит, что FullName не является[DataMember] и не сериализует его. Есть ли возможность перейти на JSON.NET, чтобы он игнорировал тот факт, что класс имеет[DataContract] атрибут применяется?

Note: Использование JavaScriptSerializer в .NET прекрасно работает для свойства FullName, но DateTimes не работают. Мне нужно, чтобы JSON.NET игнорировал тот факт, что этот класс имеет атрибуты DataContract / DataMember, и просто выполнял стандартную сериализацию открытых полей, как если бы их там не было.

Ответы на вопрос(6)

Ваш ответ на вопрос