2012-03-30 4 views
1

Ich versuche, Afterthought herauszufinden. Ich möchte die Variable HasChanged setzen, wenn ein Property Setter aufgerufen wird. Ich habe den folgenden CodeSo implementieren Sie einfache Property Amendment mit Afterthought

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); 
    } 
} 

aber ich bin einen Compiler-Fehler Empfang sagen The name 'Properties' does not exist in the current context. Ich habe den Code aus den Komponententests kopiert, die ich kompilieren und ausführen kann. Ich bin mir nicht sicher, aber weiß jemand, wie ich diesen einfachen Aspekt mit Afterthought umsetzen kann?

Antwort

1

Ihr Beispielcode kompiliert für mich.

Die flüssige Schnittstelle wurde nicht hinzugefügt, ich glaube, bis Version 1.0.8, die die aktuellste Version ist. Versuchen Sie, auf die neueste Version zu aktualisieren, und wenn Sie immer noch Probleme haben, werde ich sehen, ob ich weiter helfen kann.

bearbeiten Ich habe tatsächlich eine Änderung vornehmen, um es zum ersten Mal zu kompilieren bekomme ich versuchte. Ich habe die AfterSet zu:

.AfterSet((instance, x, y, z, a) => instance.HasChanged = true); 

Aber da das nicht wirklich Teil der Frage war, vergaß ich sofort darüber. :)

+0

Entschuldigung, so dick zu sein, aber wo kann ich Version 1.0.8 bekommen? Ich habe heruntergeladen und kompiliert den Code von hier https://github.com/vc3/Afterthought.git und die Version der DLL sagt immer noch 1.0.6. – user10479

+0

Ich habe meine Kopie von NuGet bekommen. –

+0

Wenn ich die Versionsinformationen in NuGet ist 1.0.8, und die Versionsinformationen in der packages.config ist 1.0.8, aber wenn ich auf die afterhough.dll im Ordner Verweise klicken, heißt es Version 1.0.6.0 und wird immer noch nicht kompilieren. – user10479

Verwandte Themen