問題タブ [runtime-compilation]
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# - クラスを作成せずに実行時に C# コードをコンパイルする
新しいクラス全体をコンパイルすることなく、文字列をコードにコンパイルすることは可能ですか?
私はたくさんのチュートリアルを見てきましたし、CodeDom
フレームワークのドキュメントを見てきましたが、それらのすべてで新しいクラスとすべてを作成します。私が望むのは、1 行をコンパイルして元のコードに追加することです。
それをコンパイルして、実行時に次のように使用するにはどうすればよいですか。
CompileAndCall()
何らかの方法でコードを次のように変換する必要があります。
これにより、メソッドから結果 ( ) が返さ(double)6
れ、変数に格納されnumber
ます。
asp.net - asp.netコードビハインドとランタイムコンパイルの問題とのAjax接続
AJAX 呼び出しを機能させるのに問題があります。失敗エラーは一般的な 404 です。これは、呼び出したいファイル/関数が呼び出しで見つからないことを意味します。問題は、呼び出しで絶対パスを使用しても、まだ 404 のままです。サーバー上のファイルを物理的に検査し、同じパスを使用して同じディレクトリ内の画像または .txt ファイルに Web 経由でアクセスすることもできます。
これを Dreamweaver からランタイム コンパイル済みコードビハインドとしてコーディングすることを余儀なくされているので (質問しないでください...) サーバー上の asp または iis 構成にあるかどうかを確認する必要がある単純なものはありますか?または web.config.
default.aspx ヘッダー
コア.aspx.vb
実装する必要があるものに関する背景情報: ユーザーがアイテムをクリックすると、複数の JavaScript アクションが実行され、更新せずに、ページはサーバーからデータを取得し、さらにいくつかの JavaScript アクションを実行してから、ユーザーの要求に反応します。
algorithm - 時間複雑度とは何ですか?
次の関数の時間計算量は?
2 番目の for ループですべての要素を反復処理していないため、大きな O n^2 よりも小さいと思います。時間の複雑さは次のようになると思います。
しかし、この式を解くと、
これはまったく正しくないようです。誰かがこの問題を解決する方法と、どこが間違っているかを正確に教えてもらえますか?
java - 実行時に既存のクラスを、実行時に動的に生成およびコンパイルされた Java .classfile に置き換える必要がある
私の目的は、実行時に新しい属性 + getter setter メソッドをクラス定義に動的に注入することです。現在、新しく追加された属性を使用してコードを再生成し、生成されたコードをコンパイルする方法があります。
まず、コンパイル時に各クラスのテンプレートを用意します。プロジェクトを実行すると、テンプレート クラスがランタイムに読み込まれます。Javaコードを動的に生成してコンパイルするコードをいくつか書きました。以下のコードを使用して新しく作成したクラスをロードすると、注入されたメソッドにアクセスできません。既存のランタイム定義を上書きできないと思います。たくさんのブログを見てきましたが、それでも理由を理解できませんでした。助けてください。
DROOLS で新しく追加されたメソッドにアクセスしていますが、コンパイル中に問題が発生する可能性がある他のクラスでは参照されていません。新しい属性を持つルール エンジンのルールは実行時に更新されるため、それに応じてコードを調整する必要があります。以下は ClassLoader コードです。このコードは例外をスローしませんが、私の目的を解決できません。コーディングが正しいかどうかはわかりません。
c# - ソース コードを含む文字列から Class オブジェクトを作成する
コードが実行時にコンパイルされ、コードが文字列に含まれる C# アプリケーションを作成しています (文字列は ScintillaNET コントロールから値を取得し、テキストを返すだけで、コードを含む文字列は意図したとおりに機能します)。
私の質問は: 実行時にこのソース コードからある種のクラス オブジェクトを作成する方法はありますか? たとえば、文字列には次の値が含まれます。
このコードは、実行時に CSharpCodeProvider コンパイラによってコンパイルされています (コンパイルするクラスの配列を渡しているため、CompileAssemblyFromSourceBatch を使用)。ただし、実行時にコンパイラの MainClass プロパティを設定できるようにしたいので、クラスから名前空間を取得する必要があります。
そこで、各クラスのソースコード文字列のある種のオブジェクトを作成して、目標を達成できるようにすることを考えていました。もちろん、他のアイデアも大歓迎です。
java - クラスパスを使用して実行時にクラスをコンパイルする
現在、実行時にクラスをコンパイルしようとしていますが、何らかの理由で 1 つのシステムでしか動作していません。どちらのシステムもまったく同じコードを使用し、同じバージョンの Java がインストールされていますが、一方のシステムでは .java ファイルが .class にコンパイルされ、もう一方のシステムでは例外が発生します。クラスパスが見つかりません。
コンパイルに使用するコードは次のとおりです。
必要なファイルを含む Core-1.0-SNAPSHOT.jar を含むクラスパス (optionList.toString())。
スタックトレース
編集:別のディレクトリでもテストしましたが、機能しませんでした。ローカルの Windows ラップトップでコードを使用すると、動作します。
編集 2: 2 番目の CentOS システムでも動作しないため、CentOS に問題があるようです。
java - 実行時に JUnit テストをコンパイルする:「実行可能なメソッドがありません」
grails (2.4.4) プロジェクト内で実行時に JUnit (4.12) テストをコンパイルして実行したいと考えています。
次の文字列は、そのようなテストの例です (クラス名: "DasS")。
次のメソッドの目的は、クラスをロードし、コンパイルされたテストを実行することです。
コンパイル中やクラスのロード中にエラーはありませんが、このコードを実行するたびに、失敗メッセージとして「実行可能なメソッドがありません」が表示されますが、明らかにいくつかのテストメソッドがあります。
f.getTrace() によるスタックトレース:
c# - C# ランタイム コンパイル - 新しいインターフェイスを名前空間に追加する
実行時にインターフェイスをコンパイルして「ハードコードされた」名前空間に追加できるかどうか、私は現在混乱しています。
説明するコード:
これはランタイム コンパイルされたインターフェイスです。実行時に EngineCore 名前空間に追加したいと考えています。
コンパイルは期待どおりに機能しているようで、ご覧のとおり、EngineCore 名前空間を使用してコンパイルしました。
これは、2 番目のランタイム コンパイル コードです。ご覧のとおり、以前にコンパイルした iMobilePhones インターフェイスを使用しようとしています。
しかし、iMobilePhones は EngineCore のインターフェースではないため、コンパイルは失敗します。
実際の質問:
それで、以前にコンパイルされたインターフェイス iMobilePhones を EngineCore 名前空間に「登録」する方法があるかどうか疑問に思っていますか?
読んでいただきありがとうございます。どんな提案でも大歓迎です。
c# - CodeDom コンパイラ: デフォルトで参照されるアセンブリはどれですか?
短い: CompilerParameters への参照を明示的に追加せずに、既定で .NET CodeDom コンパイラ (CSharpCodeProvider
または) に含まれているアセンブリ (フレームワーク DLL) はどれですか?VBCodeProvider
CodeDom
ツール、つまりCSharpCodeProvider
とを使用して、VBCodeProvider
実行時にアセンブリをコンパイルしています。すべてではなく一部の .NET 参照アセンブリが既定で含まれていることに気付きました。
System.dll
に参照を追加せずにすべてを使用できますが、たとえばCompilerParameters
からは何も使用できません。System.Numerics.dll
後者についてはparams.ReferencedAssemblies.Add("System.Numerics.dll")
、コードに追加する必要があります。
したがって、私の質問:どのアセンブリがデフォルトで参照され、どのアセンブリが参照されていないかをどのように知ることができますか?
関連コード:
このコードは、参照を追加せずにコンパイルできます。
このコードはできません:
コンパイルに使用するコード (省略):