Проблема настолько плоха, как вы думаете? Насколько я понимаю, FxCop будет жаловаться, если у вас есть свойство для чтения / записи, например:
public List<Foo> Items { get; set; }
... потому что пользователи вашего класса смогут сделать это:
myInstance.Items = new List<Foo>();
Очевидно, вы не хотите, чтобы пользователи вашего класса полностью переназначали список. Поэтому FxCop рекомендует этот шаблон:
private List<Foo> _items = new List<Foo>();
public List<Foo> Items { get { return _items; } }
Так что теперь пользователи вашего класса могут только добавлять и удалять элементы из вашего списка, а не перезаписывать его новым экземпляром списка.
Как Spring.NET реализует свойства своей коллекции? Они действительно читают / пишут как мой первый пример? Если это так, было бы интересно увидеть их варианты использования для такого шаблона, потому что он не выглядит правильным.