我弄乱了一些通用类,其中我有一个集合类,其中包含从 DTO 集合加载对象的方法,使用Func
public void LoadCollection<C, D>(IEnumerable<D> dtos, Func<D, C> fetch)
where D : class
{
foreach (var dto in dtos)
this.Add(fetch(dto)); // Can't assign a C to a C??
}
(C 被限制在类 def 上)
其他一切工作正常 - 但我收到无法将 C 转换为 C 的消息。如果我删除this.Add
并调试,则在获取类型后检查类型;它返回一个 C ( item is C
= true),试图将它添加到列表中,但是即使列表上的约束在那个 C 上,也会抛出无效参数。
尝试使用this.AddRange
也不起作用,引用IEnumerable<T> v4.0.0.0
无法分配给IEnumerable<T> v2.0.5.0
(注意 mscorlib 的差异版本)
有没有一种简单的方法可以找出引用旧版 mscorlib 的内容?其他人有这个问题吗?