애스 팩트를 사용하여 클래스의 속성에 애스펙트를 참조 할 수 있습니까? 예를 들어 다음과 같은OnMethodBoundaryAspect의 클래스 속성에 대한 참조
는 :
public class Device
{
public bool IsRunning { get; set; }
public bool IsOffline { get; set; }
[Offline]
public void Start()
{
IsRunning = true;
}
[Offline]
public void Stop()
{
IsRunning = false;
}
}
[Serializable]
public class Offline : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
// should be something like
if (device.IsOffline)
{
args.FlowBehavior = FlowBehavior.Return;
}
}
}
나는 클래스의 오프라인 상태가 속성이 true 인 경우 OnEntry에 차단하려는. 물론 많은 장치가 있으므로 aspect에 하나의 장치를 주입하는 것이 실현 가능하지는 않습니다.
또한 api이므로 인수로 전달하지 않으려합니다 (someDevice.Start (someDevice.IsOffline)). MethodExecutionArgs를 통해 상태를 얻을 수 있습니다.
재미 있습니다. – vknapp