Я бы сказал, что это относится к категории , а не к вашей ответственности . Свойство SyncRoot
присутствует в случае, если кто-то, использующий ваш класс коллекции, хочет синхронизировать чтение / запись, предоставляя удобный объект для блокировки - и ничего более. (На самом деле цель этого свойства была широко понята неправильно; само свойство часто рассматривается как довольно бесполезное, как указывал Ганс .)
Если вы чувствуете, что у вас есть достаточные причины для реализации этого интерфейса, все равно это тот случай, когда синхронизация полностью выходит за рамки самого вашего типа (как вы указали, имея свойство IsSynchronized
return false
); как таковой, он действительно не должен быть проверен модулем на вашем конце.
На самом деле, я полагаю, что разработчики интерфейса ICollection
довольно часто просто игнорируют свойство SyncRoot
(установите его на null
). Это должно вам кое-что сказать.
Для модульного теста вы можете просто проверить, что свойство SyncRoot
не null
.