我有以下WCF数据合同:
[DataContract]
public class Occupant
{
private string _Name;
private string _Email;
private string _Organization;
private string _Badge;
public Occupant(string name, string badge, string organization)
{
Name = name;
Badge = badge;
Organization = organization;
}
public Occupant(string name, string badge)
{
Value = name;
Key = badge;
}
[DataMember]
public string Key
{
get { return _Name; }
set { _Name = value; }
}
[DataMember]
public string Value
{
get { return _Badge; }
set { _Badge = value; }
}
[DataMember]
public string Name
{
get { return _Name; }
set { _Name = value; }
}
[DataMember]
public string Email
{
get { return _Email; }
set { _Email = value; }
}
[DataMember]
public string Organization
{
get { return _Organization; }
set { _Organization = value; }
}
[DataMember]
public string Badge
{
get { return _Badge; }
set { _Badge = value; }
}
}
当我试图通过Web浏览器访问此服务(它托管在IIS上),我得到了这个错误:
系统运行时。序列化。InvalidDataContractException:类型“MyNamespace”。无法序列化“占用者”。考虑使用DATACONTractAttor属性对其进行标记,并标记要使用DATAMEMBAREATE属性序列化的所有成员。如果类型是集合,请考虑用CopyDATAcNoTractAttor标记它。
我的方法之一是返回类型的
列表
。这会导致它吗?
您需要一个默认的无参数构造函数。我从来没有计划实际使用我的,所以我为IntelliSense添加了一个摘要,并抛出一个运行时异常以阻止它被使用。
/// <summary>
/// parameterless default constructor only for serialization
/// </summary>
public MyClass() { throw new NotImplementedException("parameterless default constructor only for serialization"); }
尝试添加一个空构造函数。这通常会触发序列化程序。
因为您提供了一个或多个初始化构造函数,所以还需要添加一个无参数(默认)构造函数。
i、 e.您需要添加:
[DataContract]
public class Occupant
{
// *** Needed only for Serialization
public Occupant() {}
...
这是因为添加显式构造函数时默认构造函数将消失。
[问题不在于返回List的方法
我需要通过(.NET Framework内置类型)。由于此类型本身无法序列化,因此我从中派生了助手类: 它严重地序列化为XML;然而,当我试图将其传递给服务调用时,我得到了System.运行时。连载。无效数据合同异常: “类型”系统。网网络信息。无法序列化PhysicalAddress“”。考虑使用DATACONTractAttor属性对其进行标记,并标记要使用DATAMEMBAREATE属性序列
下面是put请求的控制器映射: 当我运行以下来自邮递员的请求时: 我得到以下异常 我可能很简单,但我不明白我错过了什么?
我正在尝试发布一个自定义对象的。请求体中的JSON如下所示: 处理请求的服务器端代码: 实体: 但会引发异常:
例外情况: 套接字处理程序 我相信当JSON被解析为WorkstationRequest对象时会出现异常,原因是下面的项。这是套接字处理程序: 我不知道如何开始调试它。堆栈跟踪从未触及我的应用程序。我正在使用部署我的.jar,并使用执行它
在执行从serviceA到serviceB的请求时, serviceA中的测试请求是
下面是POJO类: 主要功能如下: