[英]WCF Deserializes List<object> as object[]
我这里有点情况。 我需要将具有属性的对象传递给WCF服务,该属性是另一个对象的列表。 这两个对象都在WCF服务中定义。 我在这里遇到两个问题:
1-两个对象中任何一个的自定义构造函数在客户端中不可用
2-List <>可以在客户端作为数组供我使用,不允许我向其中添加任何内容以便以后将t传递回服务器
任何帮助将不胜感激
WCF代码:
[Serializable]
[DataContract]
public class PCParamResultEntity
{
#region Properties
[DataMember]
public string SpecName { get; set; }
[DataMember]
public string SpecValue { get; set; }
[DataMember]
public string Grade { get; set; }
#endregion
#region Constructors
public PCParamResultEntity(string specName, string specValue, string grade)
{
SpecName = specName;
SpecValue = specValue;
Grade = grade;
}
#endregion
}
[Serializable]
[DataContract]
public class PCCheckResultEntity
{
#region Properties
[DataMember]
public string GlobalResult { get; set; }
[DataMember]
public List<PCParamResultEntity> Results { get; set; }
#endregion
#region Constructors
public PCCheckResultEntity(string globalResult, List<PCParamResultEntity> results)
{
GlobalResult = globalResult;
Results = results;
}
#endregion
}
客户代码:
PCCheckResultEntity result = new PCCheckResultEntity();
result.GlobalResult = pcCheckresult.GlobalResult;
foreach (PCParamResult param in pcCheckresult.Results)
{
string paramGrade = param.Grade;
PCParamResultEntity resultEntity = new PCParamResultEntity();
resultEntity.SpecName = param.SpecName;
resultEntity.SpecValue = param.SpecValue;
resultEntity.Grade = paramGrade;
result.Results.????
}
return result;
集合(和列表)非常特定于.Net,WCF不会将其公开给服务的元数据。 WCF为收集提供了专用的封送处理规则。 集合将在服务元数据中作为数组公开。
如果使用的是AddServiceReference,请单击“高级”,然后选择“集合类型”并指定Generic.List。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.