有没有办法从 IProject 接口或任何其他 Roslyn 接口读取默认命名空间设置?我知道我可以解析项目的文件,但我认为这应该可以使用 Roslyn API,但我找不到如何做到这一点。提前感谢您的信息。
问问题
247 次
2 回答
3
不幸的是,Roslyn 目前没有公开这样做的方法,但我同意这是我们最终可能需要的东西。
于 2013-02-28T16:11:49.927 回答
1
库 Microsoft.Build.Evaluation,我相信,Roslyn 的继任者确实有这个功能,但并不容易找到。
我使用下面的代码来获取默认命名空间。
我的测试表明它与存储在 .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 回答