私はCatchDeclarationSyntax
インスタンスを持っており、ステートメントにキャッチされている型のシンボルを取得したいと考えています。Roslyn:変数名を持たないキャッチ宣言からシンボルを取得
キャッチ宣言はcatchedされているタイプの変数名が含まれている場合は、ここで、この記事で説明したように、私はそれを行うことができます。 Get Symbol from CatchDeclaration
例:
...
catch(NullReferenceException exception)
{
...
}
NullReferenceException
のシンボルを取得タイプ:
ILocalSymbol catchDeclarationSymbol = semanticModel.GetDeclaredSymbol(catchDeclarationSyntax);
ITypeSymbol exceptionType = catchDeclarationSymbol.Type;
これは問題なく動作します。
キャッチ宣言にがキャッチされたタイプの変数名を含んでいない場合は、問題があります。
例:タイプNullReferenceException
のシンボルを取得するには、
...
catch(NullReferenceException)
{
...
}
この方法ではありません作業を行います。誰がどのようにNullReferenceException
タイプのシンボルを取得するという考えを持っています
ILocalSymbol catchDeclarationSymbol = semanticModel.GetDeclaredSymbol(catchDeclarationSyntax);
// catchDeclarationSymbol is now null
この場合?キャッチ宣言
ががcatchedされているタイプのための変数名が含まれていません
は 'catchDeclarationSyntax.Type'の仕事をしていますか? – haim770
'SemanticModel.GetTypeInfo()'を試しましたか? – Tamas