C# REST wcf服务中未反序列化公共属性
我有一个Restful wcf服务,它返回以下类,但是当它到达客户端时,Total和Count字段变为0。但它们在服务器端具有正确的值C# REST wcf服务中未反序列化公共属性,c#,wcf,C#,Wcf,我有一个Restful wcf服务,它返回以下类,但是当它到达客户端时,Total和Count字段变为0。但它们在服务器端具有正确的值 public class Groups : List<Group> { private int total; private int start; /// <summary> /// Total number of Groups in the result set irrespective of the
public class Groups : List<Group>
{
private int total;
private int start;
/// <summary>
/// Total number of Groups in the result set irrespective of the paging
/// </summary>
public int Total
{
get
{
return total;
}
set
{
total = value;
}
}
/// <summary>
/// Index (in the full non paged result set) of the first group in the set.
/// </summary>
public int Start
{
get
{
return start;
}
set
{
start = value;
}
}
}
公共类组:列表
{
私人整数合计;
私人int启动;
///
///不考虑分页的结果集中的组总数
///
公共整数总计
{
收到
{
返回总数;
}
设置
{
总数=价值;
}
}
///
///集合中第一个组的索引(在完整的非分页结果集中)。
///
公共整数启动
{
收到
{
返回启动;
}
设置
{
开始=值;
}
}
}
问题是,当客户端从服务调用接收到返回值时,Start和Total字段始终为0。但是,当调试服务的代码时,它返回正确的值,但当它到达客户端时,它们已变为0但是基类的列表被正确返回(不会丢失)
当我返回Group类时,它是一个简单的类(不是从任何东西派生的),它也会正确地返回
这个问题只发生在groups集合类的公共字段中
因此,我认为这是一个反序列化问题,并尝试添加[Datamember]属性[Serializable]并实现ISerializable,但没有任何效果
任何帮助都将不胜感激
谢谢好的,如果其他人遇到这个问题,我会这样做 当我发现这是DataContractSerializer的默认行为时,向集合添加其他属性也不是一个好的设计想法。集合应该只是项目的集合。 因此,我所做的是修改代码如下,它的工作
public class Groups
{
私人整数合计;
私人int启动;
私人名单组
public int Total
{
get { return total; }
set { total = value; }
}
public int Start
{
get { return start; }
set { start = value; }
}
public List<Group> Values
{
get { return groups; }
set { groups = value; }
}
公共整数总计
{
获取{return total;}
设置{total=value;}
}
公共整数启动
{
获取{return start;}
设置{start=value;}
}
公共列表值
{
获取{返回组;}
设置{groups=value;}
}
}