RF0111: Кнопке нужен getter, создающий Callable
Свойство кнопки имеет блочное тело, setter, initializer или возвращает поле вместо распознаваемого создания Callable.
Для C#-проекта с Reckfell.NET.Sdk 1.0.0. Сначала исправьте первую ошибку сборки: последующие сообщения могут быть её следствием.
Причина
Свойство кнопки имеет блочное тело, setter, initializer или возвращает поле вместо распознаваемого создания Callable.
Исправление
Используйте expression-bodied getter с Callable.From(...) или new Callable(...). Не храните эту кнопку в auto-property с backing field.
Пример с ошибкой
Сохраните файл в тестовом C#-проекте и выполните dotnet build. Этот вариант намеренно не собирается.
Example.cs
using Reckfell;
namespace DiagnosticExamples.RF0111;
[Tool]
public partial class Example : Entity
{
public int Count { get; private set; } = 7;
[ExportToolButton("Reset")] public Callable ResetButton { get { return Callable.From(Reset); } }
private void Reset() => Count = 0;
}Ожидаемые сообщения: RF0111.
Рабочий вариант
Замените ошибочный вариант этими файлами; не оставляйте оба объявления в проекте.
Example.cs
using Reckfell;
namespace DiagnosticExamples.RF0111;
[Tool]
public partial class Example : Entity
{
public int Count { get; private set; } = 7;
[ExportToolButton("Reset")] public Callable ResetButton => Callable.From(Reset);
private void Reset() => Count = 0;
}Результат
Генератор распознаёт прямой Callable.From(Reset), вызов кнопки сбрасывает Count.