나는 특성을 가지고 일하기 시작했으며,이 예제에서 코드는 PostSharp 2.0을 사용하여 작성되었다.어쨌든 속성에서 데이터를 추출하거나 저장 하시겠습니까?
내가 원하는 것은 Stopwatch
속성을 가진 메소드이거나 호출하는 메소드가 경과 시간에 액세스 할 수 있다는 것입니다.
나는 현재 C# 4.0
샘플 속성 코드를 사용하여이 코드를 쓰고 있어요 :
[Serializable]
public class StopwatchAttribute : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
// Create new stopwatch
Stopwatch stopwatch = new Stopwatch();
// Begin timing
stopwatch.Start();
args.MethodExecutionTag = stopwatch;
}
public override void OnExit(MethodExecutionArgs args)
{
Stopwatch stopwatch = (Stopwatch)args.MethodExecutionTag;
// Stop timing
stopwatch.Stop();
// Write result
Debug.WriteLine("Time elapsed: {0} ms", stopwatch.Elapsed);
}
}
가 속성
[Stopwatch]
public string Search(string LineNo)
{
// Search for something
// Is it possible to know how long (from Stopwatch attribute) Search took
}
public void CallSearch
{
string x = Search("xyz");
// Is it possible to know how long (from Stopwatch attribute) Search took
}
를 사용하여 나는 경과 시간의 출력을 얻을.
그러나 Elapsed Time Out을 보낼 수 있도록 확장해야합니다.
이상적으로 Search
의 길이는 CallSearch
에서 가져 왔지만, Search
에서 결과를 얻은 다음 다시 시도해도 괜찮습니다.
해결 방법은 현재 "Hole in the Middle" 패턴을 사용하고 있습니다.
감사합니다.
은 내가 사용 비슷한 일을했던 [유니티 차단] (http://pnpguidance.net/Post/UnityInterceptionExtensionExampleTransparentProxyPolicyInjectorHandlerAttributeICallHandler.aspx) –
@Sanjeevakumar 내가 네 제공된 링크 내가 무엇을 찾고 어떻게하는지 이해할 수 없었다 죄송합니다. 자세한 내용을 제공해주십시오. –