작업 내부 상태 시스템의 상태를 조작하는 생각을 가지고 놀고 있지만 실제로 내 상태 시스템 참조에 액세스하는 방법을 찾는 데 문제가 있습니다. 작업 방법.작업 상태 기계에 대한 실제 참조 얻기
class Test
{
async Task IndexAsync()
{
var nottheactualtype = GetType(); //This references the "Test" class, but this operation is actually located in the nested state machine class named "IndexAsync", in the method "MoveNext()".
var actualcalledmethod = new StackTrace().GetFrame(0).GetMethod(); //This shows the actual method currently being run: IndexAsync.MoveNext().
//But how do I get the reference to my current IndexAsync class?
}
}
현재 실행중인 생성 된 상태 시스템의 참조에 액세스하려면 어떻게합니까?
이는 방법 자체 내에서해야합니까? 나는 당신을 도울 수있는 https://github.com/jskeet/DemoCode/tree/master/Abusing%20CSharp/Code/FunWithAwaiters에서 이런 종류의 일을하는 많은 코드를 가지고있다. 그러나 그것은 상태를 얻지 않는 경향이있다. 비동기 메서드 내에서 * machine *. –
나는 그렇게 믿는다. async 메서드 내의 특정 위치에서 상태 머신의 어느 상태가 실행 중인지보고 싶습니다. 그보다 더 많은 것이 있지만, 본질적으로 현재 실행중인 상태 시스템의 멤버에 액세스하려고합니다. 리플렉션을 통해 액세스 할 수있는 멤버이며 생성 된 클래스의 유형에 액세스 할 수 있습니다. 하지만 실제로 참조 할 수있는 방법을 찾지 못하고 있습니다. – Micael
그래, 내가 뭔가를 생각해 냈는데, 나는 그것을 시험해 볼 필요가있다. –