Mam działającą usługę WCF, która używała JSON jako jej RequestFormat i ResponseFormat.WCF DataMember DateTime Serializing Format
[ServiceContract]
public interface IServiceJSON
{
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
MyClassA echo(MyClassA oMyObject);
}
[DataContract]
public class MyClassA
{
[DataMember]
public string message;
[DataMember]
public List<MyClassB> myList;
public MyClassA()
{
myList = new List<MyClassB>();
}
}
[DataContract]
public class MyClassB
{
[DataMember]
public int myInt;
[DataMember]
public double myDouble;
[DataMember]
public bool myBool;
[DataMember]
public DateTime myDateTime;
}
Właściwość myDateTime klasy MyClassB jest typu DateTime. To jest serializowane do następującego formatu: "myDateTime": "/ Data (1329919837509 + 0100) /"
Klient, z którym muszę się komunikować, nie może obsłużyć tego formatu. Wymaga to bardziej konwencjonalnego formatu, na przykład: rrrr-MM-dd gg: mm: ss
Czy jest możliwe dodanie tego do atrybutu DataMember? Podobnie jak:
[DataMember format = “yyyy-MM-dd hh:mm:ss”]
public DateTime myDateTime;
Z góry dziękuję!
Czy znalazłeś rozwiązanie? Jedyny sposób, w jaki to zrobiłem, to obejście problemu, http://stackoverflow.com/questions/25894068/change-the-json-datetime-serialization-in-wcf-4-0-rest-service – bpeikes
Nie ma prawdziwego rozwiązania z wyjątkiem obejście opisane przez tad donaghe poniżej, które sprowadza się do tego, o czym mówisz: dodaj dodatkowy datamember typu string. Może powinieneś edytować odpowiedź tada i dodać swój przykład do kompletności. – Brabbeldas
Tak, patrzyłem na kod referencyjny MS dla WCF i serializacji i jest nieczytelne. Nic dziwnego, że wydaje się, że porzucili REST nad WCF. – bpeikes