ฉันกำลังสร้างไซต์ ASP.NET MVC ที่ฉันใช้ Lucene.Net สำหรับการค้นหา ฉันถามคำถามที่นี่เกี่ยวกับวิธีจัดโครงสร้างการใช้งาน Lucene.Net ในแอปพลิเคชัน ASP.NET MVC อย่างถูกต้องและได้รับแจ้งว่าวิธีที่ดีที่สุดคือการประกาศ my IndexWriter
as public static
เพื่อให้สามารถใช้ซ้ำได้
นี่คือรหัสบางส่วนที่อยู่ด้านบนของ 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);
เมื่อwriter
เป็นแบบคงที่IndexLocation
จะต้องเป็นแบบคงที่ ดังนั้นคอมไพเลอร์จึงให้ข้อผิดพลาดต่อไปนี้สำหรับServer.MapPath()
:
จำเป็นต้องมีการอ้างอิงออบเจ็กต์สำหรับฟิลด์วิธีหรือคุณสมบัติที่ไม่คงที่ 'System.Web.Mvc.Controller.Server.get'
มีวิธีการใช้ Server.MapPath () หรือสิ่งที่คล้ายกันจากฟิลด์แบบคงที่หรือไม่? ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร?