我正在使用WCF和'ref'参数编组List,我希望能够设置容量。
一些背景知识。我正在使用ref编组2个List,以便调用函数可以通过在调用之前初始化来确定它感兴趣的列表。
因此,对null的快速测试使服务能够对列表执行某些操作。一切正常。
但我想;我知道列表中会有100个项目,所以设置一个初始容量是一个好主意,但是当我在调用函数中这样做时,它会在WCF服务中重新设置为0。
任何线索?
非常感谢。
编辑:考虑一下 - 这确实有很大的意义。设置初始容量的任何分配资源都必须(浪费)编组,然后再水化/分配。我认为第二个参数有一个大小或只是硬编码它是有序的。
答案 0 :(得分:2)
WCF按值传递所有数据。它永远不会通过引用传递值。集合被转换为数组,因此除了包含的数据之外不会传输任何其他信息。标记为ref
和out
的参数仅定义转移参数的方向,并指示代理使用反序列化数据填充现有实例(如果是ref
)。
如果要传输容量等信息,必须在单独的参数中传输,并在服务中使用它来限制返回数据的数量。