我正在使用 Ria 服务,我的 POCO 对象具有简单的对象属性/字段。但它们并没有出现在客户端。请帮忙,我的 POCO:
[EnableClientAccess]
[DataContract]
public class DataRow
{
[DataMember]
[Key]
public int RowId { get; set; }
[DataMember] public >>>object[]<<< FieldValue { get; set; };
public DataRow()
{
}
}
我尝试了使用 getter/setter 的字段而不是属性>>>object<<< FieldValue { get; set; } (NOT ARRAY), IEnumerable<object>
...相同的结果。
使用 WCF 我可以做到。例如。我的 wcf 服务中有这份合同(对于 sharepoint)
[DataContract]
public class SPFieldValueStub
{
//[DataMember]
//public virtual int ListItemIndex { get; set; }
[DataMember]
public virtual object Raw { get; set; }
[DataMember]
public virtual object Formatted { get; set; }
[DataMember]
public virtual IEnumerable<SPFieldValueStub> References { get; set; }
[DataMember]
public virtual IEnumerable<object> Properties { get; set; }
[DataMember]
public virtual SPFieldStub Field { get; set; }
}
[DataContract]
public class SPListItemStub
{
[DataMember]
public virtual IEnumerable<SPFieldValueStub> Values { get; set; }
}
在服务实现中,我可以从共享点列表中读取数据填充我的 POCO 并返回给客户端。之后,我可以通过生成的代理方法在客户端检索 POCO,并将对象解包(拆箱)为真实类型(适用于我的 String/Uri/DateTime)。我需要通过 RIA 这样做。