Я новичок в PostSharp (только что получил мою лицензию), и я пытался использовать его в своем приложении. У меня есть класс параметров следующий:NotifyPropertyChanged not firing event [PostSharp]
[NotifyPropertyChanged]
public class Consts
{
public string test2 {get; set;} = "foobar";
public string test
{
get { return GetValue("test"); }
set { UpdateSetting(nameof(test), value.ToString(CultureInfo.InvariantCulture)); }
}
[Pure]
public static string GetValue(string s) => ConfigurationManager.AppSettings[nameof(s)];
[Pure]
private static void UpdateSetting(string key, string value)
{
var cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
cfg.AppSettings.Settings[key].Value = value;
cfg.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
}
Тогда на мой абонентский класс:
var cst = new Consts();
Post.Cast<Consts, INotifyPropertyChanged>(cst).PropertyChanged +=
(o, args) => Debug.Write("PropertyChanged fired");
cst.test = "test test"; // Gives no result
cst.test2 = "test test"; // Event firing correctly
событие не срабатывает, когда я использую методы в моих добытчиками & сеттеров, хотя отмечен чистый, но работает отлично, когда это простое свойство.
Я провел последний день, пытаясь найти ответы на ваши вопросы без везения; ни одна нить не решает мою проблему.
Что мне не хватает?
Я не знаю, кто вы, но я найду вас и дам вам медаль. –