Me preguntaba si alguien tiene alguna idea de por qué se implementó la clase SynchronizedCollection <T> en el ensamblado ServiceModel. No puedo ver ninguna conexión entre el nombre del ensamblado y esta clase (relativamente) de propósito general.¿Por qué SynchronizedCollection <T> en el ensamblado System.ServiceModel?
6
A
Respuesta
2
esta clase es bastante específica, y su nombre podría incluso ser engañosa - su implementación interna hace prácticamente nada, excepto para envolver algunas operaciones (Insert
, Add
, Clear
, IndexOf
etc.) en lock (this.sync) {}
bloque, que no lo hace hacerlo realmente Sincronizado (consulte las preocupaciones descritas en this article).
Se usa mucho en el ensamblaje ServiceModel
, y probablemente se haya realizado solo porque algunas clases ServiceModel
exponen propiedades públicas de este tipo.
Así que mi suposición es: se puso en el ensamblaje ServiceModel
porque realmente no pertenece a BCL y es solo una extensión de espacio de nombres DRYish BCL para las necesidades internas de ServiceModel
.
Cuestiones relacionadas
- 1. SynchronizedCollection <T> no se bloquea en IEnumerable.GetEnumerator()
- 2. System.ServiceModel faltan
- 3. Error: agregue una referencia al ensamblado 'System.ServiceModel, Version = 3.0.0.0'
- 4. ¿Cuál es la diferencia entre SynchronizedCollection <T> y las otras colecciones concurrentes?
- 5. Gacutil.exe agrega ensamblado con éxito, pero el ensamblado no se puede ver en el explorador. ¿Por qué?
- 6. Descargar el ensamblado compilado por CodeDom
- 7. ¿Por qué es {} <función() {}?
- 8. ¿Por qué falta el ensamblado de mi proyecto en el paquete cuando depuro?
- 9. Cargando System.ServiceModel sección de configuración usando ConfigurationManager
- 10. implementar eq, lt gt en ensamblado sin saltos
- 11. En PHP, ¿qué representa "<<<"?
- 12. C#: ¿En qué ensamblado se define SHDocVw.WebBrowser_V1?
- 13. ¿Por qué MSBuild coloca el ensamblado * .XmlSerializers.dll en la carpeta raíz de la aplicación web publicada?
- 14. ¿Por qué el uso de ambos <% y <% = en las vistas?
- 15. Incrustar pdb en el ensamblado
- 16. ASP.NET: ¿Qué significa el '#' que empieza por <% %>?
- 17. ¿Por qué (?! ^) Es equivalente a (? <! ^)?
- 18. ¿Por qué se sella el predicado <>?
- 19. Delphi Math: ¿Por qué 0.7 <0.70?
- 20. ¿Por qué no cambia el color <hr />?
- 21. ¿Por qué usar <label>?
- 22. AppDomain.CurrentDomain.AssemblyResolve solicitando un ensamblado de <AppName> .resources?
- 23. ¿Qué significa << hacer en Python?
- 24. ¿Qué significa el operador de Bash <<<?
- 25. ¿Qué está haciendo el operador << en C++?
- 26. ¿Qué significa el operador groovy << en este contexto?
- 27. ¿Puedo dividir system.serviceModel en un archivo .config separado?
- 28. ¿Qué significa "<< -" en Ruby?
- 29. La vinculación en system.serviceModel/bindings/wsHttpBinding no tiene ... error
- 30. El ensamblado generado por ILMerge no se ejecuta, aunque el resultado del registro no informa errores. ¿Por qué es esto?
Aquí se obtuvo el siguiente error: "no se pudo encontrar el tipo o el nombre del espacio de nombres 'synchronizedcollection'". Esto tiene sentido, pero la documentación de Microsoft parece estar defectuosa, porque decía que estaba en System.Collections.Generic – nixkuroi