重构代码以不使用绝对路径或 URI [关闭]

Posted

技术标签:

【中文标题】重构代码以不使用绝对路径或 URI [关闭]【英文标题】:Refactor the code not to use Absolute Paths or URIs [closed] 【发布时间】:2021-04-04 10:19:28 【问题描述】:

我的 C# WIndows 窗体应用程序有一些指向 Web URI 的菜单链接。但是现在我的 SonarQube Scan 给了我这个错误/警告(S1075)来重构我的代码。那么在 C# 后端代码中使用 Web URI 的安全/最佳方式是什么。

private void HelpDocMenu_Click(object sender, EventArgs e)
           
   System.Diagnostics.Process.Start("https://docs.google.com/document/d/142SFA/edit?usp=sharing");

SonarQube 错误

S1075 Refactor your code not to use hardcoded absolute paths or URIs

【问题讨论】:

感谢您的帮助。可以请帮助我理解这一点。我对此并不熟悉。 如果您认为这不是问题,请忽略它。 AFAIK 你不能在每行/方法的基础上禁用警告(至少当我尝试 sonarqube 时)所以忽略它或禁用它(见this 答案)。 哪个警告?有消息或ID吗? S1075 是代码。 是的。我也是这么想的。我找不到任何解决方法。抑制这个错误将是要走的路。 【参考方案1】:

您有三个选择:

    忽略它:
private void HelpDocMenu_Click(object sender, EventArgs e)
       
   #pragma warning disable S1075 // URIs should not be hardcoded    
   System.Diagnostics.Process.Start("https://docs.google.com/document/d/142SFA/edit?usp=sharing");
   #pragma warning restore S1075 // URIs should not be hardcoded

    要有这样的临时变量:
private void HelpDocMenu_Click(object sender, EventArgs e)
           
    var url = "https://docs.google.com/document/d/142SFA/edit?usp=sharing";
    System.Diagnostics.Process.Start(url);

    要将其放入您的配置文件,一些 settings.json。

第三个选项是推荐的。

【讨论】:

以上是关于重构代码以不使用绝对路径或 URI [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

UWP程序Assets文件夹在运行时的绝对路径怎么表示

Databricks 上的 PySpark 在绝对 URI 中获取相对路径:尝试使用 DateStamps 读取 Json 文件时

Android 文件绝对路径和Content开头的Uri互相转换

为啥使用 DataFrame 时 Spark 会报告“java.net.URISyntaxException:绝对 URI 中的相对路径”?

从内容 URI 中获取搜索图像的绝对文件路径

提供了无效的请求 URI。请求 URI 必须是绝对 URI 或必须设置 BaseAddress