Μια κλήση C# στο σύστημα JS βρέθηκε στο Διαδίκτυο δημόσια συμβολοσειρά GetTimeByJs() { Πληκτρολογήστε obj = Type.GetTypeFromProgID("ScriptControl"); αν (obj == null) επιστροφή null; αντικείμενο ScriptControl = Activator.CreateInstance(obj); Στόχος. InvokeMember("Γλώσσα", BindingFlags.SetProperty, null, ScriptControl, νέο αντικείμενο[] { "JavaScript" }); συμβολοσειρά js = "χρόνος συνάρτησης(a, b, msg){ var sum = a + b; return new Date().getTime() + ': ' + msg + ' = ' + sum }"; Στόχος. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, νέο αντικείμενο[] { js }); επιστροφή Obj. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, νέο αντικείμενο[] { "time(1, 2, '1 + 2')" }). ToString(); }
Το τεστ είναι μια χαρά. time(1, 2, '1 + 2'), όπου οι παράμετροι που μεταβιβάζονται είναι (αριθμός 1, αριθμός 2, συμβολοσειρά 1+2). Αλλά υπάρχει μια ερώτηση, νέο αντικείμενο[] { "time(1, 2, '1 + 2')" }, αν το όρισμα της μεθόδου JS είναι τύπου byte[], πώς πρέπει να γράφεται κατά την κλήση;
|