2016-08-08 3 views
3

Я пишу программу в .NET с Visual Studio 2015. У меня проблема с тем, что наш инструмент обфускации не работает, когда есть динамические вызовы в любом месте кода, поэтому мне нужно избавиться от них ,Выделите динамические вызовы в коде

Возможно ли, чтобы Visual Studio выделила код, который использует dynamic? Может быть, выдать предупреждение или подобное?

EDIT:

Я не слово dynamic где-нибудь в моем коде, но все еще есть динамические вызовы. Они поступают из стороннего API, который я использую. Пример выдержки из API:

public class ThirdPartyClass 
{ 
    public dynamic Foo 
    { 
     get { ... // returns an instance of class FooClass } 
    } 

    ... 
} 

Класс FooClass имеет метод Bar().

Теперь предположим, что в какой-то момент в моем коде у меня есть экземпляр ThirdPartyClass под названием tpc. Следующая строка кода

var barVar = tpc.Foo.Bar(); 

делает динамический вызов, потому что tpc.Foo является динамическим. Для того, чтобы удалить динамический вызов я пишу вместо

var barVar = ((FooClass)tpc.Foo).Bar(); 

Это то, что мне нужно сделать для того, чтобы сделать работу инструмента запутывания снова. Но как мне найти динамические вызовы, не пройдя через код вручную?

+2

Вы хотите реорганизовать код для удаления динамических обычаев? Вы хотите знать предварительную компиляцию, в которой используется динамика? Возможно, я слишком упрощаю вашу проблему, но не CTRL + SHIFT + F и не ищет «динамическое» решение вашей проблемы? – MichaelThePotato

+0

Вы могли бы просто ctrl + F dynamic;) Может быть, есть правила стиля, запрещающие использование динамического, вы можете использовать их. – Mafii

+0

@MichaelThePotato, @Mafii, пожалуйста, прочитайте мой обновленный вопрос. Поиск ключевого слова 'dynamic' не помогает вообще. – Kjara

ответ

1

Способ поиска всех динамических применений в коде - временное удаление зависимостей Microsoft.CSharp. Это приведет к ошибке компилятора при динамическом использовании. Maybee также на других частях, поэтому вы должны повторно включить его после удаления динамических вызовов.