相比于对类方法的拦截,对接口方法的拦截为我们的架构设计方面提供了更大的自由度。
1. 接口CastleAOPTestB.Lib.IPerson的定义
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CastleAOPTestB.Lib
{
public interface IPerson
{
void SayHello();
void SayName(string name);
string GotoSchool(string schoolName, string grade, string classes);
}
}
2. 接口的实现类CastleAOPTestB.Model.Person的定义
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CastleAOPTestB.Lib;
namespace CastleAOPTestB.Model
{
public class Person : IPerson
{
public void SayHello()
{
Console.WriteLine("您好。");
}
public void SayName(string name)
{
Console.WriteLine("我是{0}。", name);
}
public string GotoSchool(string schoolName, string grade, string classes)
{
return string.Format("我就读的学校是:{0},我的班级是:{1} {2}", schoolName, grade, classes);
}
}
}
两个都很普通的接口和实现两个都很普通的接口和实现两个都很普通的接口和实现两个都很普通的接口和实现。