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 IndexWriterals 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 writerstatisch, IndexLocationmuss 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?