0

当我尝试为我的 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() 方法,它似乎没有识别命名空间的变化,或者它只是不工作。任何想法为什么?

4

0 回答 0