Здравствуйте, Silver_S, Вы писали:
S_S>Например:
S_S>S_S>property[MyStyle1] string? Location
S_S>{
S_S> //...before
S_S> _location = value;
S_S> //...after
S_S>}
S_S>
Здесь проблема, что SG не может модифицировать существующий код
Для римера
PropertyChanged.SourceGenerator
А вот такой легко превращает из полей свойства и методы
using PropertyChanged.SourceGenerator;
public partial class MyViewModel
{
[Notify] private string _lastName;
public string FullName => $"Dr. {LastName}";
}
partial class MyViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public string LastName
{
get => _lastName;
set
{
if (!EqualityComparer<string>.Default.Equals(_lastName, value))
{
_lastName = value;
OnPropertyChanged(EventArgsCache.LastName);
OnPropertyChanged(EventArgsCache.FullName);
}
}
}
protected virtual void OnPropertyChanged(PropertyChangedEventArgs args)
{
PropertyChanged?.Invoke(args);
}
}
Твой вариант возможен как использование внешнего файла. Возможно в будущем добавят анлоги неерлевских макросов. Или файлы типа блазоровских для HTML
https://github.com/dotnet/roslyn/blob/main/docs/features/source-generators.cookbook.md?ysclid=m34mdrgmtm121143934