我正在试图找出事后的想法。我想在调用任何属性setter时设置变量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实现这个简单的方面?
答案 0 :(得分:1)
您的示例代码为我编译。
我相信,在1.0.8版本之前,没有添加流畅的界面,这是最新版本。尝试更新到最新版本,如果您仍然遇到问题,我会看看是否可以提供更多帮助。
修改强>
实际上,我确实必须进行一次更改,以便在我第一次尝试时进行编译。我将AfterSet
更改为:
.AfterSet((instance, x, y, z, a) => instance.HasChanged = true);
但由于这不是问题的一部分,我很快就忘记了。 :)