Я только начал работать с FxCop, чтобы увидеть, насколько плохо мой код работает с полным набором правил. Я начал с правил «Нарушение», и первым, с чем я столкнулся, был CA2227, который в основном говорит, что вы должны сделать установщик свойства коллекции доступным только для чтения, чтобы вы не могли случайно изменить данные коллекции.
Поскольку я использую MVVM, я обнаружил, что очень удобно использовать ObservableCollection со свойствами get / set, потому что он делает мои обновления GUI простыми и лаконичными в коде. Однако я также вижу, на что жалуется FxCop.
Другая ситуация, с которой я только что столкнулся, связана с WF, где мне нужно задавать параметры при создании рабочего процесса, и я не хотел бы писать класс-оболочку для коллекции, которую я использую, просто чтобы избежать этого конкретного сообщение об ошибке.
Например, вот пример сообщения об ошибке времени выполнения, которое я получаю, когда настраиваю свойства только для чтения:
The activity 'MyWorkflow' has no public writable property named 'MyCollectionOfStuff'
Что вы думаете по этому поводу? Я мог бы либо игнорировать эту конкретную ошибку, но это, вероятно, нехорошо, потому что я мог предположительно нарушить это правило в другом месте кода, где MVVM не применяется (например, код только модели). Я думаю Я мог бы также изменить его из свойства на класс с методами для управления базовой коллекцией, а затем вызвать необходимое уведомление от метода установки. Я немного запутался ... кто-нибудь может пролить свет на это?