Sto costruendo un sito ASP.NET MVC in cui sto utilizzando Lucene.Net per le query di ricerca. I asked a question here su come strutturare correttamente l'utilizzo di Lucene.Net in un'applicazione ASP.NET MVC e mi è stato detto che il metodo migliore è dichiarare il mio IndexWriter
come public static
, in modo che possa essere riutilizzato.Utilizzo di Server.MapPath() all'interno di un campo statico in ASP.NET MVC
Ecco alcuni codice che è in cima alla mia 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);
Come writer
è statica, IndexLocation
deve anche essere statica. Così, il compilatore mi dà il seguente errore per Server.MapPath()
:
è necessario un riferimento all'oggetto per il campo non statico, metodo o proprietà 'System.Web.Mvc.Controller.Server.get'
Esiste un modo di utilizzare Server.MapPath() o qualcosa di simile da un campo statico? Come posso risolvere questo errore?
Grazie in anticipo.
Questa funzione dava un errore come risultato returbed da HostingEnvironment.MapPath non viene lo stesso di Server.MapPath, quest'ultimo restituisce un url assoluto non un url relativo – John
@john, ottengo lo stesso valore per entrambi. – ps2goat