У меня есть пакет для VS2010, что в настоящее время следуетКак я могу получить только классы, определенные в текущем проекте в EnvDTE?
EnvDTE=>Solution=>Projects=>CodeModel=>CodeElements
сделать следующее рекурсивно и найти классы
var q = elements.Cast<CodeElement>()
.Where(x => x is CodeClass || x is CodeNamespace)
.Where(x => x.Name.StartsWith("System") == false)
.Where(x=>x.Name.StartsWith("Infragistics")==false)
.Where(x=>x.Name.StartsWith("Microsoft")==false)
.Where(x => x.Name.StartsWith("ICSharpCode")==false);
Она работает довольно медленно, есть способ ограничить этот запрос/поиск только к классам/типам, определенным в текущем проекте?
Как я понимаю, FileCodeModel
не является ни полезным, ни целесообразным, поскольку для этого потребуется открытие каждого проекта.
Просто обратите внимание с этим, он не ограничивает себя классы в рамках проекта - она захватывает их, если они ссылаются в любом месте (в результате с хорошей сделкой в BCL в там). Я просто смотрю на это сейчас, поэтому у меня нет альтернативного ответа! –