Перейти к основному содержимому

Анализаторы

Roslyn-анализаторы проверяют корректность MVVM-кода на этапе компиляции и предлагают автоматические исправления.

Содержание


Обзор

Aspid.MVVM включает два набора анализаторов:

ПакетНазначение
Aspid.MVVM.AnalyzersПроверка ViewModel и View кода
Aspid.MVVM.Unity.GeneratorsUnity-специфичные проверки

Анализаторы работают в IDE (Rider, Visual Studio, VS Code) и при компиляции Unity.


Список диагностик

ViewModel

IDSeverityОписание
AMVVM001WarningКласс с [ViewModel] должен быть partial
AMVVM002WarningПоле с [Bind] должно находиться в классе с [ViewModel]
AMVVM003WarningМетод с [RelayCommand] должен находиться в классе с [ViewModel]
AMVVM004InfoРекомендация использовать сгенерированное свойство вместо backing-поля
AMVVM005WarningCanExecute метод/свойство не найдено
AMVVM006WarningНесовпадение параметров CanExecute и команды

View

IDSeverityОписание
AMVVM010WarningКласс с [View] должен быть partial
AMVVM011WarningКласс с [View] должен наследовать MonoView
AMVVM012InfoПоле биндера не имеет совпадающего свойства в ViewModel

Code Fixes

Для большинства диагностик доступны автоматические исправления:

ДиагностикаCode Fix
AMVVM001Добавить partial к классу
AMVVM004Заменить _field на Property
AMVVM010Добавить partial к классу

Установка

Анализаторы поставляются вместе с пакетом Aspid.MVVM. Если вы клонировали из исходного кода:

git submodule update --init --recursive

Убедитесь, что подмодуль Aspid.MVVM.Analyzers инициализирован.


Настройка

Отключение конкретных диагностик

В .editorconfig:

[*.cs]
# Отключить рекомендацию использовать свойство вместо поля
dotnet_diagnostic.AMVVM004.severity = none

# Понизить до информации
dotnet_diagnostic.AMVVM001.severity = suggestion

В коде (для отдельных мест)

#pragma warning disable AMVVM004
var text = _text; // Используем backing-поле намеренно
#pragma warning restore AMVVM004

См. также