Сгенерированный класс с помощью генератора исходного кода не работает ⇐ C#

Место общения программистов C#
Anonymous
Сгенерированный класс с помощью генератора исходного кода не работает

Сообщение Anonymous »

У меня есть класс, который работает нормально, и когда я меняю свойство, я вижу, что OnPropertyChanged(); и Сохранить(); уволен/назван

Код: Выделить всё

public class test : NotifiyingJsonSettings, IVersionable
{
private System.Version version = new Version(1, 0, 0, 0);
[EnforcedVersion("1.0.0.0")]
public System.Version Version
{
get => version;
set
{
version = value;
OnPropertyChanged(nameof(Version));
Save();
}
}
private string fileName = $"{AppContext.BaseDirectory}config.json";
public override string FileName
{
get => fileName;
set
{
if (fileName != value)
{
fileName = value;
OnPropertyChanged(nameof(FileName));
Save();
}
}
}
private string test;
public string Test
{
get => test;
set
{
test = value;
OnPropertyChanged(nameof(Test));
Save();
}
}
private bool test2;
public bool Test2
{
get => test2;
set
{
test2 = value;
OnPropertyChanged(nameof(Test2));
Save();
}
}

}
поэтому я решил создать генератор исходного кода для регенерации этого класса

Код: Выделить всё

[AutoSave]
public class AppConfig : NotifiyingJsonSettings, IVersionable
{
[EnforcedVersion("1.0.0.0")]
public Version Version { get; set; } = new Version(1, 0, 0, 0);
public override string FileName { get; set; } = $"{AppContext.BaseDirectory}config.json";
public virtual string Test { get; set; }
public virtual bool Test2 { get; set; }
}
в этот класс:

Код: Выделить всё

public partial class AppConfig : Nucs.JsonSettings.Examples.NotifiyingJsonSettings, Nucs.JsonSettings.Modulation.IVersionable
{
private System.Version version = new Version(1, 0, 0, 0);
[EnforcedVersion("1.0.0.0")]
public System.Version Version
{
get => version;
set
{
if (version != value)
{
version = value;
OnPropertyChanged();
Save();
}
}
}
private string fileName = $"{AppContext.BaseDirectory}config.json";
public override string FileName
{
get => fileName;
set
{
if (fileName != value)
{
fileName = value;
OnPropertyChanged();
Save();
}
}
}
private string test;
public string Test
{
get => test;
set
{
if (test != value)
{
test = value;
OnPropertyChanged();
Save();
}
}
}
private bool test2;
public bool Test2
{
get => test2;
set
{
if (test2 != value)
{
test2 = value;
OnPropertyChanged();
Save();
}
}
}
}
теперь, когда я запускаю свое приложение и меняю свойство, OnPropertyChanged(); и Сохранить(); не запускается/вызывается, я могу подтвердить, что генератор исходного кода сгенерировал мой класс (я использовал File.WriteAllText(), чтобы увидеть конечный результат генератора)

Подробнее здесь: https://stackoverflow.com/questions/791 ... s-not-work

Вернуться в «C#»