public void TestOne()
{
var dal = new SomeTestClass(new DateTime(2010, 2, 5));
// Example of the most common use case: calling instance GetDateString() method returning string.
string actual = dal.GetProxy(TestAspects).Invoke(instance => instance.GetDateString("whatevs"));
Assert.AreEqual("whatevs 2/5/2010 12:00:00 AM", actual);
// Example of instantiating an IDisposable class, calling its instance method returning string, and disposing of class instance.
actual = AOP.GetProxy<SomeTestDisposable>(TestAspects).Invoke(dispInstance => dispInstance.Echo("some text"));
Assert.AreEqual("some text", actual);
}