无法将 DynamicEntity 添加到通用列表
Cannot add DynamicEntity to Generic List
我有一个特殊的问题...
Szenario:我有一个 Contentype,它有两个 Entity-Fields。其中一个 Entityfields 已填充,一个是 empty.I 获得了数据(作为名为 result1 的 DynamicEntity)。对于空的实体字段,我在方法中得到了一个默认值(作为名为 result2 的 DynamicEntity)。现在我想在 result1 中为空 属性 添加 result2。 add-method 没有抛出错误,但 属性 仍然为空...
示例:
内容类型命名为 Header.
字段:标题(字符串)、字体(实体字段)、颜色(实体字段)
数据:"Title",从 Contenttype 字体中选择了一项,未选择任何内容。
我将数据提取到 result1 中。结果 1 来自类型 ToSic.SexyContent.DynamicEntity
result1.Font 是 System.Collections.GenericList`1[ToSic.SexyContent.DynamicEntity] 类型,我可以访问 result1.Font[0].Name 并获得值
result1.Color 是类型 System.Collections.GenericList`1[ToSic.SexyContent.DynamicEntity] 和值 null (result1.Color.Count 给我 0)
result2 来自类型 ToSic.SexyContent.DynamicEntity
现在我想用 result1.Color.Add(result2) 添加 result2;结果 1。没有错误,但没有任何反应。当我尝试访问 result1.Color[0].name 时出现错误 System.ArgumentOutOfRangeException...
有什么提示吗?
据我了解,您有两个实体列表,想要合并它们以便稍后输出。
如果我也没有理解错的话,其中一个列表是现有实体上的 属性 - 类似于 Team.Members - 而你试图添加其他实体 - 比方说 Team.Leaders - 到 Team.Members 集合,对吗?
在这种情况下,您的错误是试图修改实体 -属性 并增强它,因为实体及其数据是只读的。
您所要做的就是为这些实体创建一个新的 list/collection,然后循环遍历它。您可以像 List<DynamicEntity> xyz = new List<DynamicEntity>();
一样手动执行此操作并添加内容,或者您可以使用 LINQ 来做同样的事情。
我有一个特殊的问题...
Szenario:我有一个 Contentype,它有两个 Entity-Fields。其中一个 Entityfields 已填充,一个是 empty.I 获得了数据(作为名为 result1 的 DynamicEntity)。对于空的实体字段,我在方法中得到了一个默认值(作为名为 result2 的 DynamicEntity)。现在我想在 result1 中为空 属性 添加 result2。 add-method 没有抛出错误,但 属性 仍然为空...
示例: 内容类型命名为 Header.
字段:标题(字符串)、字体(实体字段)、颜色(实体字段)
数据:"Title",从 Contenttype 字体中选择了一项,未选择任何内容。
我将数据提取到 result1 中。结果 1 来自类型 ToSic.SexyContent.DynamicEntity
result1.Font 是 System.Collections.GenericList`1[ToSic.SexyContent.DynamicEntity] 类型,我可以访问 result1.Font[0].Name 并获得值
result1.Color 是类型 System.Collections.GenericList`1[ToSic.SexyContent.DynamicEntity] 和值 null (result1.Color.Count 给我 0)
result2 来自类型 ToSic.SexyContent.DynamicEntity
现在我想用 result1.Color.Add(result2) 添加 result2;结果 1。没有错误,但没有任何反应。当我尝试访问 result1.Color[0].name 时出现错误 System.ArgumentOutOfRangeException...
有什么提示吗?
据我了解,您有两个实体列表,想要合并它们以便稍后输出。
如果我也没有理解错的话,其中一个列表是现有实体上的 属性 - 类似于 Team.Members - 而你试图添加其他实体 - 比方说 Team.Leaders - 到 Team.Members 集合,对吗?
在这种情况下,您的错误是试图修改实体 -属性 并增强它,因为实体及其数据是只读的。
您所要做的就是为这些实体创建一个新的 list/collection,然后循环遍历它。您可以像 List<DynamicEntity> xyz = new List<DynamicEntity>();
一样手动执行此操作并添加内容,或者您可以使用 LINQ 来做同样的事情。