Je suis en train de construire un site ASP.NET MVC où j'utilise Lucene.Net pour les requêtes de recherche. I a posé une question ici J'ai demandé comment structurer correctement l'utilisation de Lucene.Net dans une application ASP.NET MVC et on m'a répondu que la meilleure méthode consistait à déclarer l'option "my" de l'application. IndexWriter
comme public static
afin qu'il puisse être réutilisé.
Voici un peu de code qui se trouve en haut de mon 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);
Comme writer
est statique, IndexLocation
doit également être statique. Ainsi, le compilateur me donne l'erreur suivante pour Server.MapPath()
:
Une référence d'objet est requise pour le champ, la méthode ou la propriété non statique 'System.Web.Mvc.Controller.Server.get'.
Est-ce qu'il y a un moyen d'utiliser Server.MapPath() ou quelque chose de similaire à partir d'un champ statique ? Comment puis-je corriger cette erreur ?