【发布时间】:2021-04-16 19:28:13
【问题描述】:
我有一个自定义 Collection 来控制对其所做的更改,并在需要时恢复更改,类似于 IEditableObject 的实现
public class CollectionBO<TEntity> : Collection<TEntity> where TEntity : BOBase
{
public List<TEntity> AddedEntities { get; set; }
public List<TEntity> RemovedEntities { get; set; }
public CollectionBO()
{
AddedEntities = new List<TEntity>();
RemovedEntities = new List<TEntity>();
}
}
我也想在rest api的DTO中使用该列表,以轻松访问要删除或添加的记录的信息,但我遇到的问题是它没有序列化内部列表(AddedEntities,RemovedEntities ),当它们到达服务器时,这些列表总是空的,问题是可以序列化一个列表甚至它的 IList 属性
await (serverUrl).AppendPathSegment(endPoit)
.WithOAuthBearerToken(token)
.PutJsonAsync(CollectionBO);
【问题讨论】:
-
什么内部列表?这些是公共财产。你用的是什么序列化器?你是如何构建数据的?绝对有可能,但是根据这个例子无法知道挂断发生在哪里。
-
您好,感谢您的回复,内部列表是 AdditionalEntities 和 RemovedEntities 属性。如果你想测试你应该创建一个 CollectionBO 实例,然后将任何对象添加到 AdditionalEntities 和 RemovedEntities 列表。要序列化我使用 JsonConvert.SerializeObject(CollectionBO 实例),您会看到它不会序列化 AdditionalEntities 和 RemovedEntities 列表的对象