Анализ потока данных Resharper

Я широко использую библиотеку потоков данных TPL, и мне очень нравится функция «используется» в R#. Что было бы неплохо, так это посмотреть на используемый метод, который является целью ITargetBlock (скорее всего, блока Action), и вернуть список вызовов ITargetBlock.Post в дополнение к любым прямым вызовам метода. Точно так же, когда вы управляете щелчком (переходом к объявлению) в ITargetBlock.Post, он должен привести вас непосредственно к методу назначения блока действий, а не к определению ITargetBlock.

ActionBlock<T> ab = new ActionBlock<T>(FuncCall, new ExecutionDataflowBlockOptions {TaskScheduler = taskScheduler});

Настройте блок действий

ab.Post(NewVal);

Опубликуйте новое значение в блоке действий, которое затем будет передано в метод FuncCall — контрольное нажатие на ab/ab.Post должно привести вас к методу ниже.

private void FuncCall(T parameter)
{
    //Do work
}

Вызов метода find для вышеуказанного метода должен привести вас к ab.Post(NewVal), а не к определению ab.

Мне интересно, есть ли способ настроить это с помощью resharper. Я предполагаю, что это выполнимо, написав собственный плагин, но я подумал, что другие могут столкнуться с этой проблемой, и хотел сначала посмотреть, есть ли простой способ добиться этого.


person Superman    schedule 23.08.2012    source источник


Ответы (1)


Вам нужно будет написать собственный подключаемый модуль, поскольку используемая информация будет разной для каждого типа оболочки; Action, Func, ActionBlock и т. д.

Это может быть удобно (о чем большая часть R#), но это сэкономит вам только одно нажатие клавиши.

В вашем примере нажмите F12 на ab для GoToImplementation, затем нажмите Ctrl+Click на FuncCall

person John Arlen    schedule 23.08.2012