【发布时间】:2009-06-08 20:47:48
【问题描述】:
我刚刚开始使用 REST 入门工具包,但在尝试构建自己的服务时遇到了障碍。我正在尝试创建用于帐户管理的服务,但无法让该服务序列化我的对象,引发以下错误:
无法使用 DataContractSerializer 反序列化具有根名称“CreateAccount”和根命名空间“”的 XML 正文(用于操作“CreateAccount”和合同(“Service”、“http://tempuri.org/”))。确保将 XML 对应的类型添加到服务的已知类型集合中。
这是服务的实际代码(基于项目附带的“DoWork”方法):
[WebHelp(Comment = "Creates a Membership account")]
[WebInvoke(UriTemplate = "CreateAccount", RequestFormat = WebMessageFormat.Xml)]
[OperationContract]
public ServiceResponse CreateAccount(CreateAccount request)
{
try
{
// do stuff
return new ServiceResponse()
{
Status = "SUCCESS",
ErrorMessage = ""
};
}
catch (Exception ex)
{
return new ServiceResponse()
{
Status = "ERROR",
ErrorMessage = ex.Message + "\n\n" + ex.StackTrace
};
}
}
最后但并非最不重要的是,这是造成所有麻烦的对象:
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; }
}
我错过了什么愚蠢的东西吗?
提前致谢!
【问题讨论】:
标签: c# xml wcf rest xml-serialization