2011-08-14 6 views
6

मैं जिंट का उपयोग कर एक जावास्क्रिप्ट फ़ाइल लोड करना चाहता हूं, लेकिन मुझे इसे समझने की प्रतीत नहीं हो रही है। प्रलेखन ने कहा कि मैं engine.run(file1) जैसे कुछ कर सकता हूं, लेकिन ऐसा लगता है कि यह किसी भी फाइल को लोड नहीं कर रहा है। क्या मुझे फ़ाइल नाम के साथ कुछ खास करने की ज़रूरत है?मैं सी # में जिंट के साथ एक जावास्क्रिप्ट फ़ाइल कैसे लोड करूं?

// test.js 
status = "test"; 

यहाँ मेरी सी #

JintEngine js = new JintEngine(); 
js.Run("test.js"); 
object result = js.Run("return status;"); 
Console.WriteLine(result); 
Console.ReadKey(); 

है अगर मैं Run यह काम करता है में मैन्युअल रूप से कोड में डाल दिया:

यहाँ मेरी जावास्क्रिप्ट फ़ाइल है।

object result = js.Run("return 2 * 21;"); // prints 42 

उत्तर

3

मैं मैन्युअल रूप से पाठ में अपने आप फ़ाइल लोड करने के बजाय नाम से लोड हो रहा है यहाँ उल्लेख किया द्वारा एक समाधान पाया का प्रयास करें: http://jint.codeplex.com/discussions/265939

 StreamReader streamReader = new StreamReader("test.js"); 
     string script = streamReader.ReadToEnd(); 
     streamReader.Close(); 

     JintEngine js = new JintEngine(); 

     js.Run(script); 
     object result = js.Run("return status;"); 
     Console.WriteLine(result); 
     Console.ReadKey(); 
0

using(FileStream fs = new FileStream("test.js", FileMode.Open)) 
{ 
    JintEngine js = JintEngine.Load(fs); 
    object result = js.Run("return status;"); 
    Console.WriteLine(result); 
} 
+0

System.Runtime.Serialization.SerializationException था बिना क्रिया संदेश = इनपुट धारा एक वैध द्विपदीय प्रारूप नहीं है। प्रारंभिक सामग्री (बाइट्स में) हैं: 73-74-61-74-75-73-20-3 डी -20-22-74-65-73-74-22-3 बी -0 डी ... स्रोत = mscorlib StackTrace: System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read (__ BinaryParser इनपुट) पर System.Runtime.Serialization.Formatters.Binary .__ BinaryParser.ReadSerializationHeaderRecord() –

+0

@Daniel में, मुझे यकीन है कि नहीं कर रहा हूँ, लेकिन बिंदु 'रन()' स्क्रिप्ट निष्पादित करने की अपेक्षा करता है और फ़ाइल नाम नहीं; फ़ाइल की सामग्री को स्ट्रिंग में मैन्युअल रूप से पढ़ने का प्रयास करें ('File.ReadAllText()') और फिर स्ट्रिंग के साथ 'रन() 'को कॉल करने का प्रयास करें। –

2

व्यक्तिगत तौर पर मैं का उपयोग करें:

js.Run(new StreamReader("test.js")); 

कॉम्पैक्ट और बस काम करता है।

0

इससे भी अधिक संक्षेप (अपने कोड का उपयोग)

JintEngine js = new JintEngine(); 
string jstr = System.IO.File.ReadAllText(test.js); 
js.Run(jstr); 
object result = js.Run("return status;"); 
Console.WriteLine(result); 
Console.ReadKey(); 
संबंधित मुद्दे