Я только начал работать с FxCop, чтобы увидеть, насколько плохо мой код работает против его полного набора правил. Я начинаю с правил «Breaking», и первым, с которым я столкнулся, был CA2227, который в основном говорит о том, что вы должны сделать установщик свойств коллекции только для чтения, чтобы вы не могли случайно изменить данные коллекции.FxCop ненавидит мое использование MVVM
Поскольку я использую MVVM, мне было очень удобно использовать ObservableCollection с параметрами get/set, потому что это упрощает и упрощает мои обновления графического интерфейса в коде. Однако я также вижу, о чем жалуется FxCop.
Другая ситуация, с которой я столкнулся, - это WF, где мне нужно установить параметры при создании рабочего процесса, и мне было бы неловко писать класс-оболочку вокруг коллекции, которую я использую, чтобы избежать этого конкретное сообщение об ошибке.
Например, вот сообщение об ошибке во время выполнения пробы, что я получаю, когда я делаю свойство только для чтения:
The activity 'MyWorkflow' has no public writable property named 'MyCollectionOfStuff'
Что вы мнение по этому поводу? Я мог либо игнорировать эту конкретную ошибку, но это, вероятно, не очень хорошо, потому что я мог бы, по-видимому, нарушить это правило в другом месте кода, где MVVM не применяется (например, только код модели). I think Я мог бы также изменить его из свойства в класс с помощью методов управления базой данных, а затем поднять необходимое уведомление из метода setter. Я немного смущен ... может кто-нибудь пролить свет на это?
это приятно знать, спасибо за объяснение. Однако это не помогает в ситуации Windows Workflow. Я собираюсь обновить свой вопрос с определенным сообщением об ошибке выполнения. – Dave
Почему бы просто не проигнорировать этот элемент? Вы можете использовать атрибут System.Diagnostics.CodeAnalysis.SuppressMessage, чтобы игнорировать такие ложные тревоги. –
@ Lex: Я делаю это сейчас для этих конкретных случаев. В незначительной заметке у меня возникли проблемы с SuppressMessage в конкретном (глобальном) случае. Есть ли у вас какие-либо предложения по этому поводу? http://stackoverflow.com/questions/2542883/globally-disabling-fxcop-errors-in-teamcity – Dave