Как реализовать простое изменение свойств с помощью Afterthought
Я пытаюсь выяснить Afterthought. Я хочу установить переменную HasChanged, когда вызывается любой установщик свойства. У меня есть следующий код
public class TestUser
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool HasChanged { get; set; }
}
public class TestUserAmmendment<T> : Amendment<T, T> where T : TestUser
{
public TestUserAmmendment()
{
Properties
.Where(p => p.PropertyInfo.CanRead
&& p.PropertyInfo.CanWrite
&& p.PropertyInfo.GetSetMethod().IsPublic
&& p.Name != "HasChanged")
.AfterSet(instance.HasChanged = true);
}
}
но я получаю сообщение об ошибке компилятора The name 'Properties' does not exist in the current context
, Я скопировал код из модульных тестов, которые я могу скомпилировать и запустить. Я не уверен, но кто-нибудь знает, как я могу реализовать этот простой аспект с помощью Afterthought?
1 ответ
Ваш пример кода компилируется для меня.
Я считаю, что свободный интерфейс не был добавлен до версии 1.0.8, которая является самой последней версией. Попробуйте обновить до последней версии, и если у вас все еще есть проблемы, я посмотрю, смогу ли я помочь дальше.
Edit Мне действительно нужно было сделать одно изменение, чтобы компилировать его при первой попытке. Я изменил AfterSet
чтобы:
.AfterSet((instance, x, y, z, a) => instance.HasChanged = true);
Но так как это не было частью вопроса, я быстро забыл об этом.:)