Есть ли способ получить компилятор, когда кто-то пишет «новый MyClass()» и MyClass Inherit из EntityBase. Мне нравится останавливать разработчиков писать это. Могу ли я сделать это с помощью проекта CodeIssue.CodeIssue project with roslyn
0
A
ответ
3
Абсолютно!
Это именно та политика, которую CodeIssues предназначены для обработки. Вы должны иметь возможность написать CodeIssue, который проверяет узлы ObjectCreationSyntax
. Код для проверки наследования выглядит примерно так (не рядом с компилятором в данный момент, так это из памяти):
var entityBaseType = document.Project.GetCompilation(cancellationToken).GetTypeByMetadataName("FullyQualifiedTypeName.EntityBase");
var typeInfo = document.GetSemanticModel(cancellationToken).GetTypeInfo(node);
if (typeInfo.Type.BaseType.Equals(entityBaseType))
{
return new CodeIssue(...);
}
return null;
Смежные вопросы
- 1. Mongo $ group with $ project
- 2. Ошибка Roslyn - Throw build
- 3. Scala SWT project with SBT
- 4. Build Java project with waf
- 5. Android-Stuck with Running Project
- 6. Использование Roslyn MSBuildWorkspace Project AddAnalyzerReference не загружает анализаторы
- 7. Master/Detail Project with Preceding View
- 8. Что значит «Sync Project with Gradle File»?
- 9. npm install with docker-compose project
- 10. Trouble with Blank Ionic Project (новичок)
- 11. git project management with more branch (50)
- 12. re-connect my project with svn
- 13. Xcode Trouble with Projects Inside Project
- 14. mongodb aggregation project objectId with concat
- 15. javafx project with multiple css .root {...}
- 16. Build Issue with multi module project
- 17. `android create` gradle project with gradle 2.7
- 18. Jenkins build of Android project with library
- 19. Включение диагностики Roslyn при программном анализе Roslyn
- 20. Roslyn, как получить все классы
- 21. Прикрепите VsPackage к экземпляру Roslyn
- 22. Roslyn проектные документы нагрузки faililng
- 23. Повторяются ли SyntaxNodes от Roslyn?
- 24. Roslyn: Как получить пространство имен декларацииSyntax с Roslyn C#
- 25. Roslyn generic method specialization body
- 26. Диагностика Sonarqube с анализаторами Roslyn
- 27. Handleed multi flavor app with single wear project
- 28. Миграция Apache Tomcat 6 project with context.xml to GlassFish
- 29. Build Project with Gradle 2.2.1 и Android Studio 1.2.2
- 30. combile asp.net aspx pages with asp.net mvc project
Спасибо большое, но у меня есть проблема, выясняя, как проверить ObjectCreationSyntax. Там так мало примеров. – user1199595
Ознакомьтесь с прохождением «Работа с семантикой», который поставляется с Roslyn CTP. В нем есть несколько примеров использования SemanticModel для ответа на эти вопросы. –
Куда уходит класс CodeIssue? похоже, они изменили имя. – Maslow