这样使用AOP是否合理
[NClay.Services.AspectContainer]
public class UserServiceAspect
{
[NClay.Services.Aspect(typeof(Users.IUserService))]
public void Create(User user)
{
using (TransactionContext tc = new TransactionContext())
{
MethodContext.Invoke(user);
UserSubInfo info = new UserSubInfo();
info.UserID = user.UserID;
DaoContext.Add(info);
tc.Commit();
}
}
[NClay.Services.Aspect(typeof(Users.IUserService))]
public void Delete(string[] userid)
{
using (TransactionContext tc = new TransactionContext())
{
MethodContext.Invoke(userid);
ModelContext.UserSubInfo.UserID.In(userid).Delete<UserSubInfo>();
tc.Commit();
}
}
}
到底在什么场合下应该怎样做呢?设计这东西总是真是很难把握,一旦设计者的执著就有可能此引发一些设计上的问题,而这些问题往往在后期修改或扩展才能体现出来。
大家发表一下各自意见来讨论一下。