問題タブ [t4]

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

t4 - ドメイン固有言語リソース

古い .Net Rocks を聞いていたところです。DSL の #329が興味深いと思いました。私の問題は、この技術を学ぼうとしている人々のための適切なオンライン リソースが見つからないことです。新しいデザイナーを作成するための基本は理解できましたが、DSL ツールで使用される T4 エンジンに関する MS ドキュメントと、テンプレートを DSL モデルに統合する方法が不足しています。

MS DSL ツールの優れた入門リソースを知っている人はいますか?

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

.net - ビルド サーバーで T4 テンプレートを実行すると、System.Xml.Linq.XDocument で TypeLoadException が発生する

ビルド サーバーで TextTransform.exe を使用して T4 テンプレートを実行すると問題が発生します。私の開発マシンでは、テンプレートは完全に機能します。エラーメッセージは次のとおりです。

エラー: 変換の実行中: System.TypeLoadException: System.Xml.Linq.XDocument 型をインスタンス化できませんでした

ビルド サーバーには Windows 2008 SDK があり、私のマシンには VS 2008 があります。System.Data.Xml が見つからないのではないかと思ったので、dll が同じディレクトリにあることを確認しましたが、うまくいきませんでした。何か案は?

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

c# - valueTypes フィールドとボックス化を持つクラス

私はジェネリックを試していて、Dataset クラスに似た構造を作成しようとしています。
次のコードがあります

問題は、新しい列を追加するときに、HasChanges プロパティと AcceptChanges() メソッドにも追加する必要があることです。これは、いくつかのリファクタリングを要求するだけです。
だから私の頭に浮かんだ最初の解決策は次のようなものでした:

コメントからわかるように、ここでは構造体の複製に関する問題はほとんどありません。これに対する簡単な解決策は、Column をクラスに変更することですが、私のテストでは、(各オブジェクトのメタデータのために) メモリ使用量が ~40% 増加するようで、これは私には受け入れられません。

私の質問は次のとおりです。さまざまな構造化オブジェクト/レコードで機能するメソッドを作成する方法を他に考えている人はいますか? F# コミュニティの誰かが、このような問題が関数型言語でどのように解決され、パフォーマンスとメモリ使用量にどのように影響するかを提案できるかもしれません。

編集:
sfg マクロに関する提案に感謝します。
Visual Studio 2008 には、T4 と呼ばれる組み込みの (しかしあまり知られていない) テンプレート エンジンがあります。全体のポイントは、「.tt」ファイルをプロジェクトに追加し、すべてのクラスを検索するテンプレートを作成し、レコードであるクラスを何らかの方法で認識し (たとえば、実装するインターフェイスによって)、HasChanges および AcceptChanges( ) クラスに含まれる列のみを呼び出します。

いくつかの便利なリンク:
VS ブログの T4 エディター ( EnvDTE を使用してプロジェクト ファイルを読み取る例を含む
T4 ブログ エントリに関するリンクとチュートリアルを含む)

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

.net - T4 テンプレート ディレクトリがビルド サーバーにありません

Windows 2008 .NET 3.5 SDK を使用して新しいビルド サーバーをセットアップしましたが、何らかの理由で c:\Program Files\Common Files\Microsoft Shared\TextTemplating がインストールされていないため、t4 テンプレートを実行できません。それ。プログラムの追加と削除のインストール オプションを調べたところ、すべてのオプションがチェックされています。

欠落している理由はありますか?それを取り戻す方法はありますか?

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

t4 - T4 ClassBlock メソッド内でテンプレートを使用するにはどうすればよいですか?

コード生成用に T4 の調査を開始しています。

巧妙なことを実行できるc#/vbの小さなチャンクを埋め込むことができる基本的なテンプレートがあると思います...

これは素晴らしい..しかし、私は自分のメインブロックをこうして書きたいと思っています...

次に、クラス ブロックに WriteX メソッドが存在するようにしたいと考えていますが、例によってコードを使用して書き込み可能にしたいと考えています。つまり、エスケープされたコード ブロックです。

どうすればこれを達成できますか?

0 投票する
6 に答える
603 参照

t4 - T4 (Microsoft のテキスト テンプレート フレームワーク) に関する適切なリソースはありますか?

なんでもいいです。例、ベスト プラクティス、サンプルなど

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

visual-studio-2008 - VS での T4 エラー。変換のコンパイル:「書き込み」はメンバーではありません

VS2008 の T4 テンプレート内でクラスを使用しようとしています。

これが私がやっていることの簡略化されたバージョンです...

このテンプレートを実行すると...次のエラーが表示されます...


エラー 1 変換のコンパイル: '書き込み' は 'Microsoft.VisualStudio.TextTemplatingF77BDE667ECAD297F587D3D651053846 のメンバーではありません。GeneratedTextTransformation.SomeClass'. D:\Development\PrivateProjects\CodeGeneration\CodeGeneration\Generation\Common\test2.tt 16 1 CodeGeneration

なぜこれがエラーを引き起こすのか、さらに重要なことに、その影響を無効にする方法を教えてもらえますか?

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

web-services - Web サービスの生成に使用できる T4 サンプル テンプレートはありますか?

Web サービスの生成に使用できる T4 サンプル テンプレート (または同じものへのリンク) を持っている人はいますか?

Webservice は Vb または Cs フィールドだけでなく、適切な asmx ファイルも必要であると推測しています。

これを達成する方法が本当にわかりません

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

linq - T4 テンプレートで Linq を使用するにはどうすればよいですか?

T4 を使用してプロジェクトの画面と中間層コードを生成していますが、Linq を使用してテンプレート コードの一部を簡素化したいと考えています。ただし、Linq を使用しようとすると、テンプレートで構文エラーが報告されます。

0 投票する
4 に答える
1383 参照

c# - 任意のファイルへの依存関係を T4 テンプレートに追加する方法は?

xml ファイルからクラスを生成する T4 テンプレートがあります。

xml ファイルとテンプレート ファイルの間に依存関係を追加して、xml ファイルが変更されたときに、コンテキスト メニューから [カスタム ツールの実行] を選択せず​​にテンプレートが自動的に再実行されるようにするにはどうすればよいですか?