Самый простой способ сделать это - использовать лямбда-выражение.Примерно так:
absRequest.BeginGetResponse(result => OnFetchComplete(result, foo, absRequest),
null);
, где OnFetchComplete
теперь имеет подпись, которую вы действительно хотите (с дополнительными параметрами - в данном случае одна соответствует foo
), а не простоIASyncResult
.Вам больше не нужно указывать absRequest
в качестве «контекста» для IAsyncResult
, поскольку вы фиксируете его в лямбда-выражении.
Если вы не знакомы с лямбда-выражениями, вам следуетправда, потребуется время, чтобы разобраться с ними - не только для этого, но и для LINQ и всех других целей.