ASP.NET and static method in controller

Viewed 6462

Assume that WebApi2 controller has a SearchClient which is configured in scoped-lifestyle dependency on startup.

public class SearchController : ApiController {

    private readonly SearchClient _indexClient;

    public SearchController(SearchClient client) {
        _indexClient = client; // dependency injected
    }

    public IEnumerable<string> Get(string keyword){
        return SearchDocuments(_indexClient, keyword);
    }

    public static IEnumerable<string> SearchDocuments(SearchClient indexClient, string text)
    {
        return indexClient.Search(text);
    }
}

As we can see, SearchDocuments method has static keyword.

My questions are;

  1. How can we decide whether static method is good or bad?
  2. Is static method safe or recommended in such a multiple-accessed web environment?
  3. What about async static method in web environment? Is it different from async method?
2 Answers
Related