2014-01-09 3 views
3

При использовании DI сложнее прочитать код, так как у вас много интерфейсов. То есть вы не можете просто нажать F12 (перейти к определению) в Visual Studio, так как это приведет вас только к интерфейсу. Вам нужно знать, какой класс настроен для использования.Включение зависимостей отладки .net

Есть ли плагин или что-то в этом роде, что делает это проще? Как вы, люди, занимаетесь этим?

+0

Возможный дубликат http://stackoverflow.com/questions/620376/how-do-you-find-all-implementations-of-an-interface –

+2

Купить ReSharper и подружиться с Alt + End. –

+0

Этот вопрос еще не задан. Я знаю, что вы можете использовать resharper, но это не помогает, когда вы используете DI. Resharper не знает, какой класс реализации был настроен, он просто перечислит все классы, реализующие этот интерфейс. Я хочу, чтобы он отвел меня в настроенный класс. Я также спросил, как вы, люди, решаете это. – Thomas

ответ

5

В Visual Studio 2015 вы можете нажать CTRL + F12 и перейти непосредственно к реализации, если есть только одна, и в противном случае выведет список вариантов реализации на выбор.

Существует плагин для ReSharper, называемый агент Малдер, который объединяет ReSharper с библиотеками Injection Dependency. Он позволяет вам видеть, какие классы используются, и позволяет перейти непосредственно к конфигурации интерфейса или его реализации. Вы должны обязательно проверить это.

Но, честно говоря, отладка кода с помощью DI не изменяется, поскольку вы все же можете входить в вызовы методов во время отладки, поскольку вы привыкли.

Если ваше приложение спроектировано хорошо, будет менее вероятно, что вам нужно перейти от класса к классу во время работы с кодом, поскольку класс не интересуется деталями его зависимостей. Таким образом, инъекция зависимостей должна сделать это проще.

Но даже если код и отладка браузера (немного) сложнее, будучи в состоянии подключить новые функции, добавьте проблемы с резанием коса и возможность тестирования приложения окажет огромное положительное влияние на избыточное качество и удобство обслуживания приложение.

+0

Спасибо, проверим. В основном я заинтересован в этом, когда просматриваю код, написанный кем-то другим. Например, при переходе приложения из проекта в обслуживание. Важно иметь возможность свободно перемещаться по коду без отладки. По моему опыту очень распространено, что приложения не очень хорошо спроектированы :( – Thomas

+0

@Thomas: Во-вторых, но, по крайней мере, вы, похоже, работаете над базой кода, которая на самом деле делает DI. Это что-то :-) – Steven

Смежные вопросы