当我尝试为我的WCF服务的合同对象指定自定义命名空间时,我遇到了一个问题。
我有以下两份合同:
[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()方法,它似乎没有识别命名空间更改,或者它只是不起作用。有什么想法吗?