ServiceStack - 处理'参数永不使用'警告

Sco*_*ott 3 c# resharper code-analysis servicestack

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

我面临的困境是在没有参数的路线上,例如返回课程列表的简单GET请求:

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

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

public List<CourseResult> Get(ListCoursesRequest request)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

警告:从不使用参数'request'.

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

但是因为ServiceStack根据参数路由到操作ListCoursesRequest,所以除非有不同的方法来处理无参数路由方案,否则无法将其删除.行动的一个属性可能?

我正在尝试采用最佳实践并保持清洁代码,我知道这是化妆品,我怀疑它只是我必须要忍受的东西,但我想我会问.

Mik*_*ock 6

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

如果将ReSharper代码注释添加到解决方案中,则可以使用该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) { }
}
Run Code Online (Sandbox Code Playgroud)

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