問題タブ [codedom]
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# - CodeDom に using ステートメントを名前空間の前に置く方法はありますか
msdn のドキュメントには、名前空間のインポートを CodeNamespace.Imports コレクションに追加すると書かれています。これにより、名前空間内に配置されます(名前空間に追加するので、これは理にかなっています)
ただし、コード ベースの残りの部分には、名前空間の外に using ステートメントがあります。
CodeDom に 2 番目のバージョンを発行させるクリーンな方法はありますか?
編集: 最初の例を生成するコードは次のようになります。
silverlight - System.CodeDom.Compiler.CompilerParameters は Silverlight のどこにありますか?
Silverlight で Mathematics Expression Evaluator を作成したいと考えています。これを簡単に行うには、System.Reflection、System.Reflection.Emit、System.CodeDom.Compiler、およびその他の関連アセンブリを使用して、オンザフライでコンパイルする必要があります。
ただし、Silverlight で利用できるこのクラスが見つかりません。
何か提案をください。
f# - FSharp.Compiler.CodeDomforVS2008およびVS2010を並べて
FSharp.Compiler.CodeDom(PowerPackから)を使用して、F#クラスを動的に作成しています。問題は、コンピューターにVS2008とVS2010の両方が並んでいて(正常に動作する)、この構成でF#を使用するのはせいぜいバグがあることです。
- InstallFSharp.msiをインストールしない場合、VS2008では、ビルドされたクラスがFSharp.Coreが見つからないことについて文句を言います(参照されている場合でも)
InstallFSharp.msiをインストールすると、VS2008では、ビルドされたクラスはVS2010用にビルドされたF#を使用し、.net4バリアントをロードするため、バイナリ非互換性例外をスローします。
FSC:エラーFS0219:参照またはデフォルトのベースCLIライブラリ'mscorlib'は、参照されているF#コアライブラリ' C:\ Program Files(x86)\ Microsoft F#\ v4.0\FSharp.Core.dll'とバイナリ互換性がありません。ライブラリを再コンパイルするか、使用しているCLIバージョンと一致するこのライブラリのバージョンへの明示的な参照を作成することを検討してください。
以前の場所で見つかったF#を個別にインストールされたdll-sに置き換えると、もちろんVS2010はバイナリの非互換性について文句を言います
私は何かを見落としているのでしょうか、それともこのような共有環境では機能しないのでしょうか。これは、アプリケーションをデプロイするときに実際の問題を意味する場合があります。
ありがとう
parsing - ソースからAST、CodeDomへ
私は本LanguageImplementationPatterns(http://pragprog.com/book/tpdsl/language-implementation-patterns)を読んでいますが、概念を明確にするために他のいくつかの本や時折のWebサイトを混ぜ合わせています。私は、些細なプログラミング言語を読み取り、それに対していくつかの基本的な分析を実行するツールを作成しようとしています。
このツールの設計段階で行き詰まっています。ソースファイルを適切に検証する、単純な手書きの再帰下降パーサーを作成しました。ただし、CodeDomツリーを使用してソース操作を実行すると便利です。
質問:
1)このようなツールがとる論理的な手順は次のとおりです。テキストツリーと一致するシンボルテーブルを解析して構築し、これをCodeDomに変換しますか?
2)テキストツリーを構築する場合、最も便利なのはASTであり、CodeDomへの変換が簡単です。ただし、リファクタリングツールは、インラインコメントを保持するために、ステートメントに埋め込まれたすべてのトークンのリストを維持し、これをどのように追跡しますか彼らの木に?
c# - C#でメソッドを作成し、その本体を動的に設定する簡単な方法はありますか?
メソッドの本体を文字列で保持します。メソッドを動的に作成したい。しかし、私は知りません、その体を設定する方法。CodeDom を使用する非常に退屈な方法を見ました。また、OpCodes で Emit を使用しているのを見ました。文字列変数から準備完了のコードを使用する方法はありますか?
.net - Workflow 4.0 の FlowDocument 内でユーザー入力を ToString() メソッドに変換する
メールを生成する Workflow 4.0 アプリがあります。電子メール本文を作成するためのダイアログで、ユーザーは実行時に文字列として挿入される既存の wf インスタンス変数を表す文字列値を入力できる必要があります。
そのため、次のように入力します: <> を含むメール本文テキスト。
(ExistingVariable が int などであるとします)
実行時にこのテキストを ToString() で変換する方法に関する役立つヒントはありますか?
c# - Linq メソッドを使用すると、WindowsBase の DependencyObject への参照が失われる
アプリケーション内で CodeDom を使用してコンパイルしたい c# ソースがあります (プラグイン用)。
一部のコレクションで Linq 拡張関数を使用する場合を除いて、すべて正常に動作します
このコードを含むソースをコンパイルしようとすると、WindowsBase の DependencyObject への参照が見つからないという CodeDom のエラーが表示されます。
なぜこれが起こっているのかわかりません。Dictionary クラスも Any 拡張メソッドも、明らかに Windows.Forms の一部であるそのクラスを参照しません。
私は通常、癖を無視し、CodeDom に参照を追加させて先に進みますが、どうやら WindowsBase は特別であり、常に配布されているわけではなく、正しくインストールされていない可能性のあるユーザーに問題を引き起こしたくありません。
c# - CodeDom によるアンマネージ C++ の生成
CodeDom を介してアンマネージ C++ コードをプログラムで生成しようとしています。のデフォルトの実装でCppCodeProvider
は、マネージド C++/CLI しか生成できないようです。
代替案はありますか?
ありがとう!
c# - CodeDom とコレクション初期化子
C# CodeDom を使用して辞書初期化子を生成する方法はありますか? それらはまったくサポートされていますか?
私はを頂きたい:
reflection - バイナリからコード DOM をロードする
C# を使用して作成された .NET バイナリから CodeDOM を読み込むことは可能ですか?