4
PostSharp
을 사용하여 가로 채기 클래스에서 differnt 메서드를 호출 할 수 있기를 원합니다. 포스트 샤프를 사용하는 클래스에서 대체 메서드 호출
PostSharp
측면에서 다음과 같은 방법을 말해봐 :
CallDifferentMethod()
public override void OnInvoke(MethodInterceptionArgs args)
{
if (!m_featureToggle.FeatureEnabled)
{
base.OnInvoke(args);
}
else
{
var instance = args.Instance;
instance.CallDifferentMethod(); //this is made up syntax
}
}
이 차단 된 클래스 내의 또 다른 방법이다. 나는 반사회적 인 마법을 사용하여 내가 부르길 원하는 이름을 얻을 수 있지만, 그 방법을 호출하는 방법을 찾을 수는 없다. 이 클래스의 인스턴스. 나는 클래스의 새로운 인스턴스를 시작하고 싶지 않다.
어떤 제안?
참조하십시오. 대안은 "동적"인 경우입니다. 그러나, aspect를 인터페이스에 적용해도 aspect를이 인터페이스로 "제한"하지 않는다. 그냥 "적용"합니다. 제한은 CompileTimeValidate를 사용하여 수행해야합니다. –
죄송합니다. @GeafFraiteur가 맞습니다. CompileTimeValidate 메서드를 사용하여 응용 프로그램을 실제로 특정 형식 (컴파일 타임에 완료)으로 제한합니다. –