0

WCF サービスのコントラクト オブジェクトにカスタム名前空間を指定しようとすると、問題が発生します。

以下の2つの契約があります。

[MessageContract(WrapperNamespace="http://www.mysite.com/Contracts/Users")]
public class CreateUserRequest
{
    [MessageBodyMember]
    public User User { get; set; }
}
[MessageContract(WrapperNamespace="http://www.mysite.com/Contracts/Users")]
public class CreateUserRequest
{
    [MessageBodyMember]
    public int ID {get;set;

    [MessageBodyMember]
    public string Name {get;set;}
}

このコントラクトを使用したこの操作の定義は次のとおりです。

    [OperationContract]
    [WebInvoke(BodyStyle=WebMessageBodyStyle.Bare)]
    CreateUserResponse CreateUser(CreateUserRequest request);

このサービス操作に、コンテンツ タイプがapplication/xmlの次の XML を送信します。

<CreateUserRequest xmlns="http://www.mysite.com/Contracts/Users">
        <User> 
               <First>John</First>
               <Last>Smith</Last>
               <Username>john</Username>
               <Password>password</Password>
        </User>
</CreateUserRequest>

また、最初の User タグで名前空間を再度指定しようとしましたが、操作をデバッグすると、User が null として表示されます。

このオブジェクトを返す Test() メソッドを実行しようとしましたが、名前空間の変更を認識していないように見えるか、機能していません。理由はありますか?

4

0 に答える 0