6
我想知道是否有人知道为什么在ServiceModel程序集中实现了SynchronizedCollection类<T>。我无法看到程序集名称和这个(相对)通用类之间的任何连接。为什么System.ServiceModel程序集中的SynchronizedCollection <T>?
我想知道是否有人知道为什么在ServiceModel程序集中实现了SynchronizedCollection类<T>。我无法看到程序集名称和这个(相对)通用类之间的任何连接。为什么System.ServiceModel程序集中的SynchronizedCollection <T>?
这个类是非常具体的,它的名字甚至可能是误导 - 它的内部实现确实几乎为零,除了在lock (this.sync) {}
块,这不包装一些操作(Insert
,Add
,Clear
,IndexOf
等)使其实际上同步(请参阅this article中描述的问题)。
它在ServiceModel
程序集本身中被大量使用,并且可能仅由于某些ServiceModel
类暴露了此类型的公共属性而被制作为public
。
所以我的猜测是:它被放到ServiceModel
程序集中,因为它并不属于BCL,只是内部ServiceModel
需求的DRYish BCL命名空间扩展。
在这里通过以下错误:“无法找到类型或名称空间名称'synchronizedcollection'”。这是有道理的,但微软的文档似乎有缺陷,因为它表示它在System.Collections.Generic中 – nixkuroi 2017-07-30 18:36:15