Tworzę witrynę ASP.NET MVC, w której używam Lucene.Net do wyszukiwania zapytań. I zadał pytanie tutaj o tym, jak prawidłowo struktury zużycia Lucene.Net w aplikacji ASP.NET MVC i powiedziano mi, że najlepszą metodą jest zadeklarować moja IndexWriterjak public static, tak, że może on być ponownie użyte.
Oto kod, który znajduje się na górze mojego SearchController:
public static string IndexLocation = Server.MapPath("~/lucene");
public static Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer();
public static IndexWriter writer = new IndexWriter(IndexLocation,analyzer);
Ponieważ writerjest statyczny, IndexLocationmusi być również statyczny. W związku z tym kompilator podaje następujący błąd dla Server.MapPath():
Odwołanie do obiektu jest wymagane dla niestatycznego pola, metody lub właściwości „System.Web.Mvc.Controller.Server.get”
Czy istnieje sposób użycia Server.MapPath () lub czegoś podobnego z pola statycznego ? Jak mogę naprawić ten błąd?