Muszę zastąpić serializację DateTime dla JSON w WCF REST Self Hosted. Teraz używam czegoś podobnego do tego kodu, ale to zdecydowanie nie jest droga, ponieważ wymaga manipulowania każdą klasą.Zmiana serializacji json DateTime w WCF 4.0 Usługa REST
[DataContract]
public class Test
{
[IgnoreDataMember]
public DateTime StartDate;
[DataMember(Name = "StartDate")]
public string StartDateStr
{
get { return DateUtil.DateToStr(StartDate); }
set { StartDate = DateTime.Parse(value); }
}
}
gdzie moja funkcja użyteczna DateUtil.DateToStr wykonuje wszystkie operacje formatowania.
Czy jest jakiś łatwy sposób to zrobić bez dotykania atrybuty na moich klasach, które mają atrybut DataContract? W idealnej sytuacji nie byłoby żadnych atrybutów, ale kilka linii kodu w mojej konfiguracji, aby zastąpić serializator, z którego nadpisałem serializację DateTime.
Wszystko, co znalazłem, wygląda tak, że muszę wymienić ogromne części rurociągu.
Ten artykuł nie wydaje się mieć zastosowania, ponieważ w używam WebServiceHost nie HttpServiceHost, który nie jest częścią 4.5.1 Framework.
JSON.NET Serializer for WCF REST Services
Czytałem ten artykuł. Mówi o tym, jak wymienić formatyzator. Nie chcę go zastąpić, chcę ustawić domyślną DateTimeFormat na serializatorze json używanym z WebServiceHost i webHttpBehavior. Patrząc na kod referencyjny WCF, wydaje się, że WebOperationContract angażuje się w tworzenie formaterów. – bpeikes