Ich erstelle eine ASP.NET MVC-Site, auf der ich Lucene.Net für Suchanfragen verwende. Ich habe hier eine Frage gestellt, wie die Verwendung von Lucene.Net in einer ASP.NET MVC-Anwendung richtig strukturiert werden kann, und mir wurde gesagt, dass die beste Methode darin besteht, my IndexWriter
als zu deklarieren public static
, damit es wiederverwendet werden kann.
Hier ist ein Code, der sich oben in meinem SearchController befindet:
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);
Wie writer
statisch, IndexLocation
muss auch statisch sein. Daher gibt mir der Compiler den folgenden Fehler Server.MapPath()
:
Für das nicht statische Feld, die Methode oder die Eigenschaft 'System.Web.Mvc.Controller.Server.get' ist eine Objektreferenz erforderlich.
Gibt es eine Möglichkeit, Server.MapPath () oder ähnliches aus einem statischen Feld zu verwenden ? Wie kann ich diesen Fehler beheben?