Ответ 1
Запрос кода и правило над LINQ (CQLinq) действительно предоставляет возможность игнорировать сгенерированный код.
Существует удобный предопределенный домен с именем JustMyCode типа ICodeBaseView.
Домен JustMyCode представляет собой средство CQLinq для устранения сгенерированных элементов кода из результатов запроса CQLinq. Например, следующий запрос будет соответствовать только большим методам, которые не генерируются инструментом (например, дизайнером пользовательского интерфейса):
from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m
Набор сгенерированных элементов кода определяется запросами CQLinq с префиксом ключевого слова CQLinq notmycode. Например, запрос ниже соответствует методам, определенным в исходных файлах, имя которых заканчивается ". Designer.cs" :
notmycode from m in Methods where
m.SourceFileDeclAvailable &&
m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs")
select m
Сценарий запросов CQLinq выполняет все запросы notmycode перед запросами, основанными на JustMyCode, поэтому домен JustMyCode определяется один раз для всех. Очевидно, что компилятор CQLinq испускает ошибку, если запрос notmycode зависит от домена JustMyCode.
Существует 4 запроса по умолчанию notmycode, которые легко адаптируются в соответствии с вашими потребностями. Заметьте, что для пространств имен нет запросов notmycode по умолчанию, но вы можете создать свой собственный (-ы):