当我尝试为我的 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>
我也尝试在打开的用户标记中再次指定命名空间,但是当我调试我的操作时,用户进入为空。
我试图做一个返回这个对象的 Test() 方法,它似乎没有识别命名空间的变化,或者它只是不工作。任何想法为什么?