私は自己ホスト型のようにして定義されている今WCF-ホスティングサービスを持っている:WCFサービスは要求データがどのように見えると思いますか?
[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json, Method = "PUT", UriTemplate = "/device")]
void updateDeviceLevel(ZDevice device);
ZDeviceクラスは次のようになります。
public class ZDevice {
public bool? newPowerState { get; set; }
public int nodeId {get; set;}
}
私は簡単なMacクライアントを持っていますこれはhttpポストを使用してサービスを消費します。 \devices
urlに{"newLevel":27,"nodeId":6}
と表示され、.NETは私のためにZDeviceオブジェクトに値を魔法のように詰め込みます。すべてここでうまくいきます。
ここでは、基本的なセキュリティをミックスに追加する必要があります。私は、メソッド呼び出しに新しいパラメータといくつかの「RequestWrapping」を追加することでこれをやった:
[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.WrappedRequest, Method = "PUT", UriTemplate = "/device")]
void updateDeviceLevel(string password, ZDevice device);
私は今、何をしようとしているサーバが消費するクライアントから期待しているものを構文把握です。私は{"password":"somepwd", "newLevel":27,"nodeId":6}
の投稿がうまくいくと思っていましたが、.NETはもはや以前と同じようにZDeviceオブジェクトに「非直列化」することができなくなりました。
誰でも私にいくつかの提案がありますか?
おかげ
DOH!私はそれを試みたと思ったが、私は "デバイス"ではなく "デバイス"を行った。ありがとう! – bugfixr
他にもありがとう - 私は私の質問の作成に私のコードのいくつかを混ぜた。それを見渡す時間を取らずにすばやく投稿するために私にサービスしてください。 – bugfixr