我有以下 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 上)时,我收到此错误:
System.Runtime.Serialization.InvalidDataContractException:无法序列化类型“MyNamespace.Occupant”。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。如果该类型是一个集合,请考虑使用 CollectionDataContractAttribute 对其进行标记。
我的一种方法是返回一个List
type Occupant
。这会导致它吗?