在Roslyn DiagnosticAnalyzer
中分析C#源代码时,我有一个ITypeSymbol
。如何确定此类型是在源中声明还是仅通过程序集引用引用?
我目前的解决方案是检查符号是否有DeclaringSyntaxReferences
。这在Visual Studio中很有用。但是,当我在MsBuild执行中进行分析时,我的结果并不准确。问题是MsBuild逐个构建每个项目,因此如果在另一个项目中声明了类型符号,那么DeclaringSyntaxReferences
将为空。
有没有办法区分"项目参考"来自"装配参考"?
答案 0 :(得分:-1)
希望这种方法有所帮助:
ToggleButton toggle = new ToggleButton();
Service<Void> toggleService = new Service<Void>() {
@Override
protected Task<Void> createTask() {
return new Task<Void>(){
@Override
protected Void call() throws Exception {
while(!isCancelled()) {
int randomInt = (int )(Math.random() * 37 + 1);
System.out.println(randomInt);
}
return null;
}
};
}
};
toggle.selectedProperty().addListener((obs, oldVal, newVal) -> {
if(newVal) {
toggleService.reset();
toggleService.start();
}
else
toggleService.cancel();
});