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;
- How can we decide whether
static
method is good or bad? - Is
static
method safe or recommended in such a multiple-accessed web environment? - What about
async static
method in web environment? Is it different fromasync
method?