-2

フォーム、イベントが接続されたいくつかのボタンを含む jscript.net コードを実行したいと考えています。リフレクションを使用して c# で達成する必要があるすべてのことですが、これらのイベントの適切な例を見つけることができません。助けてください。これは私が今まで持っているものですが、最後の行にはエラーがあります

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("import System.Windows.Forms;");
            sb.AppendLine("class EventTestForm extends Form");
            sb.AppendLine("{");
            sb.AppendLine(" var btn : Button;");
            sb.AppendLine("function EventTestForm()");
            sb.AppendLine("{");
            sb.AppendLine(" btn = new Button; btn.Text = \"Fire Event\";  Controls.Add(btn); btn.add_Click(ButtonEventHandler1);");
            sb.AppendLine("}");
            sb.AppendLine("function ButtonEventHandler1(sender, e : EventArgs)");
            sb.AppendLine("{");
            sb.AppendLine(" MessageBox.Show(\"Event is Fired!\");");
            sb.AppendLine("}");
            sb.AppendLine("}");

            sb.AppendLine("MessageBox.Show(\"Hello world\");");

            // Create the compiler object
            JScriptCodeProvider provider = new JScriptCodeProvider();
            ICodeCompiler compiler = provider.CreateCompiler();

            CompilerParameters options = new CompilerParameters();
            options.GenerateInMemory = true;

            options.GenerateExecutable = true;
            options.ReferencedAssemblies.Add("System.Windows.Forms");
            CompilerResults results = compiler.CompileAssemblyFromSource(options, sb.ToString());
4

3 に答える 3

1

C# アプリで JavaScript を実行しようとしている場合は、いずれかの js インタープリターを使用することをお勧めします。

私はジントを使用しています。ジュラシック、javascript.net、おそらく他にもあります

于 2012-07-26T16:16:36.550 に答える
0
options.GenerateExecutable = false;
options.GenerateInMemory = true;
options.ReferencedAssemblies.Add("system.dll");
options.ReferencedAssemblies.Add("system.Text.dll");
options.ReferencedAssemblies.Add("system.windows.forms.dll");

これらの行を使用してください

于 2014-04-23T15:12:35.840 に答える
0

JavaScriptを学ぶことをお勧めできますか? JScriptCodeProviderクラスを見ただけで、ドキュメントには次のように書かれています:

この API は .NET Framework インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

http://msdn.microsoft.com/en-us/library/microsoft.jscript.jscriptcodeprovider.aspx

于 2012-07-27T08:01:59.253 に答える