問題タブ [server-explorer]

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 投票する
1 に答える
83 参照

c# - サーバー エクスプローラーからの T4 テンプレート消費接続

ソース コードに接続情報を保存せずに、データベース モデルとデータベース コンテキストを生成するアイテム テンプレートを作成しようとしています。

アイテム テンプレート ウィザードをサーバー エクスプローラーとうまく連携させ、settings.ttinclude で接続キーを設定できます。

問題は、DTE から IVsDataExplorerConnectionManager へのインターフェイスを解決できないことです。

これは、VSIX プロジェクトでサーバー エクスプローラーを取得する方法であるため、間違ったツリーを鳴らしたと思います。T4 ビジュアル スタジオ テンプレート エンジンでも同様のコードが機能することを期待していました。

他の誰かがすでに同様のことを行っているかどうかを確認するために数時間を費やしましたが、何も見つかりませんでした. T4 テンプレートでサーバー エクスプローラーからの接続を使用する方法についてのアイデアをいただければ幸いです。

2020 年 7 月 23 日更新

その後、デフォルトのカスタム ツールに付属している T4 ITextTemplatingEngineHost が、接続マネージャーを取得するための依存性注入の使用をサポートしていないことを知りました。解決策は、探している情報にアクセスするテンプレート ファイル ジェネレーターを実装することです。また、EngineHost サービスを実装するほど単純ではありません。Visual Studio の内部にある TextTemplatingService は、テキスト テンプレート ジェネレーターをサポートするために必要なインターフェイスを実装している可能性があります。ただし、内部的にサービスはインターフェイスを使用しません。これにより、テンプレート サービスは非常に厳格になり、私が望むほど堅牢ではなくなります。進行中のソリューションは、ビジュアル スタジオ サービスをラップし、TemplatedCodeGenerator をオーバーライドして ProcessTemplate をオーバーライドし、ラップされたサービスを置き換える新しいテンプレート サービスを構築するように見えます。

上記を含むテストコード