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 IndexWriter
jak 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ż writer
jest statyczny, IndexLocation
musi 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?