さまざまな種類のシンボルの Microsoft.CodeAnalysis.ISymbol から System.Type を取得する最も一般的な方法は何ですか? (例: クラス宣言、変数、プロパティなど)
System.Type をチェックできるのと同じように、タイプが任意のインターフェイスを実装しているかどうか、または任意のインターフェイスにキャスト可能かどうかをチェックするなど、タイプに対してさまざまなチェックを実行できるようにしたいと考えています。
私が抱えている問題は、シンボルを表すために使用される具象クラスのほとんどが内部的なものであり ( http://sourceroslyn.io/を参照)、ISymbol でタイ型情報を見つけることができなかったことです。
- SourceNamedTypeSymbol
- ローカルシンボル
次のコードを使用して ISymbol を取得します
var objectSymbol = (ISymbol)model.GetDeclaredSymbol(obj.Node);