問題タブ [roslyn]

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.

0 投票する
2 に答える
1710 参照

c# - Roslyn を使用した Visual Studio 2012 RC の C# インタラクティブ ウィンドウのフォントと色を変更する 2012 年 6 月 CTP

ライトテーマではデフォルト設定でうまくいきますが、ダーク設定ではデフォルトのメッセージテキストは黒のままです (実際にはエラーメッセージのテキストの色も残りますが、赤なので問題ありません)。基本的には関連する質問とまったく同じように見えますが、この場合は VS 2012 を使用しています。

関連
Roslyn CTP の C# Interactive ウィンドウのフォントと色を変更する方法はありますか?

0 投票する
1 に答える
560 参照

c# - Roslyn June CTP 2012 を使用して動的 LINQ を生成する際のエラー

以前、Mono コンパイラをサービスとして使用するプログラムを作成しました。

//出力

55

Roslynを使用して同じことをしようとしています(私の最初のコード)[Roslyn Project Type:console Application]

しかし、このエラーが発生する

"(1,34): エラー CS8000: この言語機能 ('初期化子を使用したオブジェクト作成式') は、Roslyn ではまだ実装されていません。"

助けてください

0 投票する
5 に答える
61126 参照

c# - C#インタラクティブウィンドウは私のコードと相互作用できますか?

Visual Studio 2015以降では、「C#インタラクティブウィンドウ」を開いて、次のコードを実行できます。

それはかわいいです。では、コード、つまりクラスをどのように操作できますか?プロジェクトを開いていると仮定します。

0 投票する
2 に答える
1237 参照

c# - Roslyn VisualBasic.ScriptEngineは、C#で記述されたhostObjectを認識しません

私たちのプロジェクトには、顧客がVisualBasicでスクリプト化できる簡単なビジネスルールを持つ能力が必要です。私たちのメインプログラムはC#で書かれていますが

顧客が実行したいスクリプトは次のようになります(私は可能な限り単純なケースを検討しています)

そこで、CodeプロパティとMappedCodeプロパティを使用してC#でRowDataクラスを作成しました

次のような単純なホストオブジェクトクラスを作成しました

Roslyn.Scripting.VisualBasic.ScriptEngineを使用してエンジンを作成し、HostObjectModelのインスタンスを使用してセッションを作成し、engine.Execute(vbCode、session)を実行します。

そしてそれは私にそれを教えてくれます

(2,25):エラーBC30451:「行」が宣言されていません。保護レベルが原因でアクセスできない場合があります。

しかし、C#で同様のコードスニペットを作成すると

CSharp.ScriptEngineを使用すると、すべて正しく機能します

では、何が問題なのか、なぜVisualBasic.ScriptEngineがC#でコンパイルされたクラスのパブリックプロパティを表示できないのか、同じMSIL言語に基づいているのか、それとも間違っているのでしょうか。


更新:Visual Basicをインストールし、VBにScriptModelライブラリを作成しました。また、クラス宣言とvbCodeの両方でRowプロパティをRow()関数に置き換えました。どちらも役に立たなかった。:( C#から実行すると、VisualBasic.ScriptEngineがまったく機能しないようです。

0 投票する
1 に答える
883 参照

c# - 最初からIDocumentを構築するための最も効率的な方法は何ですか

具体的な例として、次のクラスを使用して、新しいIDocumentオブジェクトを段階的に作成したいと思います。結果のオブジェクトが最後に完全なクラスを表すIDocumentである限り、任意のオブジェクトから開始して、任意の中間オブジェクトを使用できます。

ステップ1:MyNamespaceという名前の新しい名前空間を追加します。現在のオブジェクトを印刷すると、この時点で次のようになります。

ステップ2:MyClassという名前空間に新しいクラスを追加します。現在のオブジェクトを印刷すると、この時点で次のようになります。

ステップ3:MyMethodという新しいメソッドをこのクラスに追加します。現在のオブジェクトを印刷すると、この時点で次のようになります。

私がこれに関して抱えている問題は、理論的にこれを実行できる方法が無数にあるように思われるか、少なくとも誤ってこれを実行できると結論付けていることです。WithChanges、UpdateDocument、さまざまなSyntaxオブジェクトのメソッド、ParseCompilationUnitなど、あらゆる種類の異なるオブジェクトの無限のメソッドとコンストラクター。

基本的に、これを段階的に構築し、各ステップで個別のオブジェクトを作成して、たとえばコンソールに出力できるようにします。このすべてを1行で作成する1つの大きなステートメントではありません。6月のCTPリリースに付属するすべてのドキュメントを何度か読みましたが、前述したように、さまざまなコンストラクターとメソッドの無限の組み合わせに迷いました。また、パフォーマンスも考慮した方法に興味があります。

0 投票する
1 に答える
448 参照

.net - Property-of 別名 infoof -- Rosyln 経由ですか?

数年前、Eric Lippertは、実行時ではなくコンパイル時にメソッド/プロパティ情報を取得できる架空の infoof 演算子についてブログを書きました。基本的には素敵なポニーだと言っていますが、ユニコーンではありません....

コンパイル時にコードを書き換える Rosyln の機能について少し読みましたが、Roslyn を使用して infoof を実装するのはどれほど難しいでしょうか?

編集:これは、エリックが考えていたことをすべて取得する方法かもしれないと思いましたが、そうでない場合に備えて、機能を少し分解する必要がありました.

  1. プロパティ名を取得します。
  2. プロパティ タイプを取得します。
  3. プロパティ アクセサーを取得します。
  4. メソッド名を取得します。
  5. infoof で彼が意味するすべてを取得します...

リファクタリングに安全な方法で、コンパイル時に検証されます。個人的には、1 は実際に使用するものの約 90% をカバーします (呼び出し元の名前を取得するための新しい呼び出し元情報属性は、実際には約 60% をカバーできますが、もちろん、メソッドの内部と外部の両方で機能する方法があった場合) 、それが望ましいでしょう)。

0 投票する
3 に答える
5130 参照

c# - Roslyn でメソッド引数を取得する

次のコードを使用して、特定のメソッドへのすべての呼び出しのソリューションからリストを取得できます。

しかし、これは私にのリストを与えますReferencedSymbol。これにより、メソッドが呼び出されるファイルと行番号が得られますが、メソッドが呼び出される特定の引数も取得したいと思います。私が持っているものを変換したり、Roslyn で同じ情報を取得したりするにはどうすればよいですか? (最初にメソッドを使用してソリューションをロードし、Solution.Loadループしてメソッドが定義/宣言されている場所を見つけることに注意してください(createCommandList))。

0 投票する
1 に答える
1829 参照

c# - C# エディター ウィンドウの現在の位置にある項目の型を見つける

Visual Studio intellisense の拡張機能を作成していて、C# エディターでカーソルの直前にある項目の型を取得したいと考えています。

現在ITextBuffer、現在のソース ファイルを取得するために使用できる があります。

以下のように、エディターで現在の位置を取得することもできます。

ただし、エディターで現在カーソルの後ろにあるアイテムのタイプを検出する方法がよくわかりません。私はRoslynを使ってみましたが、これはこれよりもはるかに簡単なことのようです. Roslyn はこれを行うための最良のツールですか (ドキュメントをコンパイルし、ドキュメント内の正しい位置に移動することにより)、またはより良い方法があります。

以下は、Roslyn を使用してアイテムのタイプを見つけようとする私の試みです。

0 投票する
2 に答える
3627 参照

c# - Roslyn を使用して自動実装プロパティをクラスに追加する

私は Roslyn を学習しようとしていますが、既存の単純なアプリケーションをゼロから構築することで、これを学習するための生産的な方法と思われます。とにかく、私は次のコードを持っています:

IDocument に次のコードを出力します。

このように見えるはずですが (Timer プロパティを追加しようとしたことに注意してください)

また、このような単純なプロセスのために私が書いているコードは過剰に思えます。私の主な質問に加えて、よりエレガントな方法でこれを行う方法について提案を提供できますか? ブログやコード スニペットなどへのリンクでしょうか。


この行を変更する必要があることがわかりました。

この行に:

ただし、次の出力が得られます。

今、私は「get; set;」を取得していません。プロパティ内のテキスト。誰かが私が欠けているものを知っていますか?

0 投票する
2 に答える
4909 参照

c# - シンタックスツリーをゼロから構築する

私は以前にこの質問をしましたが、それは答えられましたが、誰かが私が前進するときに同様の間違いをするのを防ぐのに役立つかもしれない提案をしました。

Roslynを使用してクラスに自動実装プロパティを追加する

提案は、構文ツリーを上からではなく下から上に構築することでした。誰かが私がこれをゼロから行う方法を示す小さなデモまたはリンクを提供できますか?

コードは次のとおりです。

では、同じことをどのように行うのでしょうか。

前もって感謝します、

ボブ

PS私のプロパティにも「get;set;」がありません。その中のテキスト。このテキストがプロパティに追加される原因となる、追加するのを忘れているものについて誰かがコメントできますか?