これは私の最初の投稿ですので、十分な情報を提供しないと私を許してください。私はWCF WebサービスにDateTime
プロパティを含むEmployeeLogin
オブジェクトを送信しようとしているWPFアプリケーションがあり、このEmployeeLogIn()
メソッドを呼び出すときに400の不正なリクエストエラーが発生し続けます。私は非常に多くの場所を検索して答えを出しましたが、私の特定の状況に直接答えは出ません。WCFはdatetimeプロパティ(400の悪い要求)を持つオブジェクトを受け付けません
だから私の主な質問は:JSON形式(\/Date(1237951967000)\/
)に変換されますと、有効なDateTime
プロパティとしてWCFサービスによって受け入れられます自動的に以下のメソッドを介して設定されているDateTime
プロパティを持つオブジェクトを送信、またはん上記のJSON文字列に変換して文字列としてメソッドに渡しますか?
EDITv2:私のWPFアプリは、上記の正しい形式でこのDateTime
オブジェクトを送信し、代わりに"2017-08-11T13:47:55.2187627-04:00"
として、それを送信し、私は正しいDateTime
形式にそれを取得する方法を把握することはできませんされていません。私は文字列としてこの形式にすることができますが、このポストの最後に述べられている理由により、それは最後の努力になるでしょう。 EmployeeLoginが以下に定義される
:EmployeeLogin EmpLogin = new EmployeeLogin { EmployeeID = (int)UserName, Password = Pass, Latitude = 33.45, Longitude = 134.44, TimeIn = DateTime.Now }; HttpResponseMessage response = await Client.PostAsJsonAsync(string.Format(@"{0}{1}", URL, method), EmpLogin);
[DataContract] public class EmployeeLogin { [DataMember] public int EmployeeID { get; set; } [DataMember] public string Password { get; set; } [DataMember] public DateTime TimeIn { get; set; } [DataMember] public Nullable<double> Latitude { get; set; } [DataMember] public Nullable<double> Longitude { get; set; } }
とEmployeeLogInメソッドシグネチャは以下の通りである:
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedResponse)] [return: MessageParameter(Name = "Data")] [OperationContract] List<int> EmployeeLogIn(EmployeeLogin e);
DateTime
をstring
プロパティに変更し、Webサービス側のDateTime
に変換するのが最も簡単な解決方法ですが、絶対に必要でない限り、Webサービスを変更しないようにしています。前もって感謝します。
WCFがDateTimeをシリアル化およびデシリアライズする方法を知りたければ、DateTimeを返すWCFエンドポイントを記述します。応答を調べるには、Fiddlerまたは同等の機能を使用します。 Fiddler(または同等のもの)は、 'PostAsJsonAsync'がDateTimeをどのようにシリアライズしているかを正確に理解するのに役立ちます。 –
返信ありがとうございます。 'PostAsJsonAsync'は間違ってFiddler:' 'EmployeeID":6、 "Password": "6490"、 "TimeIn": "2017-08-11T13:47: 55.2187627-04:00 "、" Latitude ":33.45、"経度 ":134.44}'どのようにして 'DateTime'を適切な形式にするのですか? – Chiron
私はそれを最終的に考え出した!リンクされたポストの質問に対する答えは問題を完全に説明してくれて、完璧に機能する解決策を提供します: https://stackoverflow.com/questions/33072965/webservice-not-deserializing-some-objects – Chiron