gpt4 book ai didi

c# - ServiceStack - 处理 'Parameter is never used' 警告

转载 作者:行者123 更新时间:2023-11-30 13:46:36 25 4
gpt4 key购买 nike

我在我的 ServiceStack 项目上运行 Resharper 代码分析,它警告某些服务操作的参数未被使用。这是真的。

我面临的困境是在不需要参数的路由上,例如返回类(class)列表的简单 GET 请求:

[Route("/Courses","GET")]
public class ListCoursesRequest : IReturn<List<CourseResult>> {}

然后操作将不会使用请求对象 (ListCoursesRequest),从而导致此警告。

public List<CourseResult> Get(ListCoursesRequest request)
{
...
}

Warning: Parameter 'request' is never used.

我可以通过使用忽略注释让 Resharper 忽略警告,但我不喜欢这样乱写我的代码。

但是因为 ServiceStack 路由到基于参数 ListCoursesRequest 的 Action ,所以它不能被删除,除非有不同的方法来处理无参数路由场景。也许是 Action 的属性?

我正在努力采用最佳实践并保持代码整洁,我知道这是表面功夫,我怀疑这只是我不得不忍受的事情,但我想我会问。

最佳答案

这个建议只比添加忽略评论好一点点,但是你去吧:

如果添加ReSharper code annotations对于您的解决方案,您可以使用 UsedImplicitly 属性标记您的 DTO 和服务类。指定 ImplicitUseTargetFlags.WithMembers,这样您就不必注释每个有问题的属性和方法。

[Route("/Courses", "GET"), UsedImplicitly(ImplicitUseTargetFlags.WithMembers)]
public class ListCoursesRequest : IReturn<List<CourseResult>> {}

[UsedImplicitly(ImplicitUseTargetFlags.WithMembers)]
public class CoursesService : Service {
public List<CourseResult> Get(ListCoursesRequest request) { }
}

您可以通过打开 ReSharper 选项并转到代码注释选项卡,将这些 ReSharper 注释添加到您的解决方案中。有一个按钮将默认实现复制到剪贴板。然后您可以将代码粘贴到解决方案中的新文件中。或者,我认为 JetBrains 提供了一个 DLL,您可以将其添加到您的解决方案中,但我更喜欢粘贴到代码中。

关于c# - ServiceStack - 处理 'Parameter is never used' 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20504316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com