問題タブ [cs-script]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - CS-Script Evaluator LoadCode: 2 番目のスクリプトをコンパイルして参照する方法 (再利用可能なライブラリ)
簡単に言うと、再利用可能なスクリプト コードを含む 2 番目のスクリプトを、ホスト アプリケーションを再起動せずにスクリプトのいずれかが変更されたときにアンロードおよび再ロードできるようにする必要があるという制約の下で、どのように参照しますか?
2 番目の「ライブラリ」スクリプトからコンパイルされたばかりのアセンブリを参照しながら、CS-Script「サービスとしてのコンパイラ」(CSScript.Evaluator) を使用してスクリプト クラスをコンパイルしようとしています。その目的は、ライブラリ スクリプトに、さまざまなスクリプトで再利用できるコードを含めることです。
以下は、この考え方を示すサンプル コードですが、実行時に CompilerException も発生させます。
コードを実行するには、NuGet パッケージの NUnit と cs-scriptが必要です。
この行により、実行時にCompilerExceptionが発生します。
繰り返しますが、 CSScript.LoadCodeの代わりに CSScript.Evaluator.LoadCodeを使用する理由は、いずれかのスクリプトが変更されたときに、ホスト アプリケーションを再起動せずにいつでもスクリプトを再ロードできるようにするためです。(CSScript.LoadCode は、 http://www.csscript.net/help/Importing_scripts.htmlに従って他のスクリプトを含めることを既にサポートしています)
CS-Script エバリュエーターに関するドキュメントは次のとおりです: http://www.csscript.net/help/evaluator.html
これに対する Google の結果がないことは残念ですが、何か単純なものが欠けていることを願っています。どんな助けでも大歓迎です。
(この質問は、存在しないタグ cs-script の下に提出する必要があります。)
c# - C# スクリプトへの参照を追加する方法
CS-Scriptライブラリを使用して動的コードを実行しています。スクリプト エンジンとして使用するのではなく、機能をその場でアプリケーションにプラグインするために使用したいと考えています。これがホスティングコードです...
そして、これが SomeCode/MyScript.cs の内容です...
これはうまくいきます。ホスティング コードでは、ホスティング コードにアセンブリ参照の指定を任せたくありません。コメントアウトしCSScript.Evaluator.ReferenceAssembly(Assembly.GetAssembly(typeof(System.Windows.Forms.MessageBox)));
て実行すると、エラーが発生します...
エラー CS0234: 型または名前空間名
Forms' does not exist in the namespace
System.Windows'. アセンブリ参照がありませんか?
コマンドラインツールを使用してこれを実行していた場合、これをスクリプトの先頭に追加して参照を追加できます...
しかし、.NET アプリケーションのコンテキストで実行すると、それは無視されるようです。参照を適切に解決するにはどうすればよいですか?
c# - C# を使用して、変数とクラスへのアクセスを使用して C# アプリケーションをスクリプト化する方法
C# をスクリプト言語 (CSScript、Mono、Roslyn) として使用することに関する多くの情報を見つけることができますが、必要な機能を実行しているようには見えません (または、機能していて、単に使用方法がわかりません)。
私ができるようにしたいのはこれです: いくつかのクラスを持つ C# プログラムを書いたとしましょう。プログラムが起動すると、cs ファイルまたはメモリ内のスクリプトが検索されます。プログラムからクラスの 1 つを切り取り、ファイルまたはテキスト ボックスに貼り付けます。プログラムがロードされると、そのクラスが検出され、クラスが別の場所にあることを除いて、以前とまったく同じように実行されます。このクラス (スクリプト) を編集し、プログラム内の他のクラスや変数にアクセスして、コンパイルせずにプログラムの一部を変更できます。
これは可能ですか?そうでない場合、最善の解決策は何ですか (クロスプラットフォームが良いでしょう)?
c# - ソースファイルをプラグインとしてコンパイルする C#
プログラムのプラグインをサポートしたい
目標は、プラグインフォルダー内のファイルをコンパイルしていくつかのメソッドを起動することですが、動作させることができます
CSScriptLibrary を使用した現在の進行状況:
しかし、それは例外をスローします:
アドオンファイル:
resmanagerクラスが重要だとは思わないとにかく、そのインスタンスを渡して関数をロードしたいので、元のプログラムの内容を変更できます