Afterthoughtに参加するための簡単なコードを作成しましたが、機能せず、理由がわかりません。その大部分は、他のSOの質問から取られています:後付けで単純なプロパティ修正を実装する方法。
using System;
using System.Collections.Generic;
using Afterthought;
namespace SecondAmendmentTest
{
    class Program
    {
        public class TestUser
        {
            public int Id { get; set; }
            public string FirstName { get; set; }
            public string LastName { get; set; }
            public bool HasChanged { get; set; }
            public void method()
            {
                Console.WriteLine("method");
            }
        }
        public class TestUserAmmendment<T> : Amendment<T, T> where T : TestUser
        {
            public TestUserAmmendment()
            {
                Properties
                    .AfterSet((instance, x, y, z, a) => instance.HasChanged = true);
                Methods.After(ExceptionMethod);
            }
            private object ExceptionMethod(T instance, string method, object[] parameters, object result)
            {
                throw new NotImplementedException();
            }
        }
        static void Main(string[] args)
        {
            TestUser tu = new TestUser();
            Console.WriteLine("Has changed: " + tu.HasChanged.ToString());
            Console.WriteLine("Performing changes...");
            tu.Id = 5;
            tu.FirstName = "name";
            tu.LastName = "lastname";
            Console.WriteLine("Has changed: " + tu.HasChanged.ToString());
            tu.method();
            Console.ReadKey();
        }
    }
}
コンパイルされますが、出力exeファイルは変更されません。ビルド後のイベントを設定しました。ビルド出力:
1>------ Rebuild All started: Project: SecondAmendmentTest, Configuration: Debug Any CPU ------
1>  SecondAmendmentTest -> C:\Users\Lukasz\Documents\Visual Studio 11\Projects\SecondAmendmentTest\SecondAmendmentTest\bin\Debug\SecondAmendmentTest.exe
1>  Amending SecondAmendmentTest.exe (5,559 seconds)
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
そして最後に、実行後にアプリケーションから出力します。
C:\Users\Lukasz\Documents\Visual Studio 11\Projects\SecondAmendmentTest\SecondAmendmentTest\bin\Debug>SecondAmendmentTest.exe
Has changed: False
Performing changes...
Has changed: False
method
HasChangedプロパティは変更されず、NotImplementedExceptionもスローされませんでした。Gitの最後のソースを使用しています。なぜそれが機能しないのか、いくつかのアイデアがありますか?
編集:これが全体の解決策です:SecondAmendmentTest.zip