IProject インターフェイスまたは他の Roslyn インターフェイスから既定の名前空間設定を読み取る方法はありますか? プロジェクトのファイルを解析できることは知っていますが、これは Roslyn API を使用して可能だと思いますが、その方法が見つかりません。事前に情報をありがとう。
質問する
247 次
2 に答える
3
残念ながら、現時点では Roslyn はそれを行う方法を公開していませんが、最終的にはおそらく必要になるだろうということには同意します。
于 2013-02-28T16:11:49.927 に答える
1
Roslyn の後継と思われるライブラリ Microsoft.Build.Evaluation にはこの機能がありますが、見つけるのは簡単ではありません。
以下のコードを使用して、デフォルトの名前空間を取得します。
私のテストでは、.csproj ファイルに保存されている RootNamespace と一致することが示されました。
private string GetDefaultNamespace(Microsoft.Build.Evaluation.Project p)
{
string rtnVal = "UNKNOWN_NAMESPACE";
foreach (ProjectItemDefinition def in p.ItemDefinitions.Values)
{
if (def.ItemType == "ProjectReference")
{
foreach(ProjectProperty prop in def.Project.AllEvaluatedProperties){
if(prop.Name == "RootNamespace"){
rtnVal = prop.EvaluatedValue;
}
}
}
}
return rtnVal;
}
于 2016-03-10T00:50:01.347 に答える