2011-08-14 20 views
6

Jint kullanarak bir JavaScript dosyası yüklemek istiyorum, ama bunu anlayamıyorum. Belgeler, engine.run(file1) gibi bir şey yapabileceğimi söyledi, ancak herhangi bir dosya yükleniyor gibi görünmüyor. Dosya adında özel bir şey yapmam gerekiyor mu? Ben çalıştığını Run elle kod koyarsanızC# ile Jint ile bir JavaScript dosyasını nasıl yüklerim?

// test.js 
status = "test"; 

İşte

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

benim C# var:

İşte benim JavaScript dosyası var.

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

cevap

3

deneyin: 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

el metne kendim dosyası yüklenirken, yerine burada belirtildiği gibi adıyla yükleyerek geçici bir çözüm buldu

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 işlenmeyen Mesaj oldu (kodunuzu kullanarak) = girdi akışı geçerli bir ikili biçimi değil. Başlangıç ​​içeriği (bayt cinsinden): 73-74-61-74-75-73-20-3D-20-22-74-65-73-74-22-3B-0D ... Kaynak = mscorlib StackTrace: System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read (__ BinaryParser giriş) de System.Runtime.Serialization.Formatters.Binary .__ BinaryParser.ReadSerializationHeaderRecord() –

+0

@Daniel de, emin değilim ama mesele 'Çalıştır() 'bir dosya isminin yürütülmesini ve yürütülmemesini bekler; Dosyanın içeriğini bir dizgeye ('File.ReadAllText()') manuel olarak okumaya çalışın ve sonra dizeyle 'Run()' ı çağırmayı deneyin. –

2

Şahsen kullanın:

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

Kompakt ve sadece çalışır.

0

Hatta daha özlü

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(); 
İlgili konular