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() メソッドを実行しようとしましたが、名前空間の変更を認識していないように見えるか、機能していません。理由はありますか?