C# Can';t在WCF REST服务中反序列化XML

C# Can';t在WCF REST服务中反序列化XML,c#,xml,wcf,rest,xml-serialization,C#,Xml,Wcf,Rest,Xml Serialization,我刚刚开始使用REST初学者工具包,我在尝试构建自己的服务时遇到了障碍。我正在尝试创建用于帐户管理的服务,但无法使该服务序列化我的对象,引发以下错误: 无法使用DataContractSerializer反序列化根名称为“CreateAccount”和根命名空间为“”的XML正文(对于操作“CreateAccount”和约定(“服务”,“约定”)。确保将与XML对应的类型添加到服务的已知类型集合中 以下是服务的实际代码(基于项目附带的“DoWork”方法): 最后,但并非最不重要的是,这是造成所

我刚刚开始使用REST初学者工具包,我在尝试构建自己的服务时遇到了障碍。我正在尝试创建用于帐户管理的服务,但无法使该服务序列化我的对象,引发以下错误:

无法使用DataContractSerializer反序列化根名称为“CreateAccount”和根命名空间为“”的XML正文(对于操作“CreateAccount”和约定(“服务”,“约定”)。确保将与XML对应的类型添加到服务的已知类型集合中

以下是服务的实际代码(基于项目附带的“DoWork”方法):

最后,但并非最不重要的是,这是造成所有麻烦的物体:

public class CreateAccount
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
    public bool SignUpForNewsletter { get; set; }
    public string Password { get; set; }
}
我错过了什么蠢事吗


提前谢谢

如果您还没有,我认为在CreatAccount类上方有一个[DataContract]属性。

如果您还没有,我认为在CreatAccount类上方有一个[DataContract]属性。

问题似乎是方法名“CreateCount”和输入类型“CreateCount”之间存在命名空间冲突

此外,您必须将CreateCount类型标记为DataContract,如下所示:

[DataContract]
public CreateAccount
{
    [DataMember]
    public string LastName { get; set; }

    ...
}
ResponseFormat = WebMessageFormat.Xml
如果希望保持相同的名称,可以为CreateCount类指定名称空间

我注意到你也有一个返回类型。确保返回类型也标记有DataContract属性。另外,指定返回格式,如下所示:

[DataContract]
public CreateAccount
{
    [DataMember]
    public string LastName { get; set; }

    ...
}
ResponseFormat = WebMessageFormat.Xml

问题似乎是方法名“CreateAccount”和输入类型“CreateAccount”之间的命名空间冲突

此外,您必须将CreateCount类型标记为DataContract,如下所示:

[DataContract]
public CreateAccount
{
    [DataMember]
    public string LastName { get; set; }

    ...
}
ResponseFormat = WebMessageFormat.Xml
如果希望保持相同的名称,可以为CreateCount类指定名称空间

我注意到你也有一个返回类型。确保返回类型也标记有DataContract属性。另外,指定返回格式,如下所示:

[DataContract]
public CreateAccount
{
    [DataMember]
    public string LastName { get; set; }

    ...
}
ResponseFormat = WebMessageFormat.Xml

原来我在业务对象的
[DataContract]
属性中缺少了一个额外的值


应该是
[DataContract(Namespace=”“)]

结果是我在业务对象的
[DataContract]
属性中缺少了一个额外的值


应该是
[DataContract(Namespace=”“)]

我也有类似的问题,但我确实有DataContract属性。但我缺少的是xmlns=”http://uri.org“尝试将xml读回对象时,从根元素获取属性。
e、 g

。。。

我也有类似的问题,但我确实有DataContract属性。但我缺少的是xmlns=”http://uri.org“尝试将xml读回对象时,从根元素获取属性。
e、 g

。。。

我刚刚考虑了与对象和方法可能存在的命名冲突。我已将对象名称更改为“CreateAccountRequest”,并添加了[DataContract]和[DataMember]属性,但运气不佳。请参见上面的编辑。确保您也在服务合同上指定了属性。您应该有一个服务接口。这就是OperationContract和WebInvoke属性应该存在的地方。我刚刚考虑了与对象和方法可能存在的命名冲突。我已将对象名称更改为“CreateAccountRequest”,并添加了[DataContract]和[DataMember]属性,但运气不佳。请参见上面的编辑。确保您也在服务合同上指定了属性。您应该有一个服务接口。这就是OperationContract和WebInvoke属性应该存在的地方。