using System;
namespace Aop静态代理
{
internal class Program
{
static void Main(string[] args)
{
FooProxy<Foo> foo = new FooProxy<Foo>();
foo.Run();
Console.WriteLine("Hello World!");
}
}
/// <summary>
/// 接口
/// </summary>
interface IFoo
{
void Run();
}
class Foo : IFoo
{
public void Run()
{
Console.WriteLine("{调用了当前方法} 对象运行中Run");
}
}
class Bar : IFoo
{
public void Run()
{
Console.WriteLine("{GetType()} 对象运行Run");
}
}
class FooProxy<T> where T : IFoo, new()
{
private T foo;
public FooProxy()
{
foo = new T();
}
public void Run()
{
Console.WriteLine("代理运行前",DateTime.Now);
foo.Run();
Console.WriteLine("代理运行后", DateTime.Now);
}
}
}
