【发布时间】:2011-07-04 01:39:07
【问题描述】:
PostSharp 的新手 --- 我现在正在试用 NuGet 版本,并试图了解 AuthoriseAttribute OnEntry 方法中的 wny,即 agrs.Instance 值为 null。我正在尝试实现取决于对象值的授权,例如已归档的客户无法提高信用额度。我正在特定于规则的其他类中实施规则。
public class Program
{
static void Main(string[] args)
{
var c = new Customer();
c.RaiseCreditLimit(100000);
c.Error(00);
}
}
public class Customer
{
[AuthorizeActivity]
public void RaiseCreditLimit(int newValue)
{
}
[AuthorizeActivity]
public void Error(int newValue)
{
}
}
[Serializable]
public class AuthorizeActivityAttribute : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
//
//Why is args.Instance null???????????
//
if (args.Method.Name == "RaiseCreditLimit")
{
Debug.WriteLine(args.Method.Name + " started");
}
else
{
throw new Exception("Crap");
}
}
public override void OnExit(MethodExecutionArgs args)
{
Debug.WriteLine(args.Method.Name + " finished");
}
}
【问题讨论】:
-
你明白了吗?