1

要するに、私は現在、分析と設計の方法論に基づくサービス指向ソリューションのモデル変換に焦点を当てた私の大学の研究課題に取り組んでいます。メタモデルが収集された後、私の仕事は、この要件を実行可能で展開可能な WCF コンポーネント サービス ライブラリに変換することです。これまでのところ、事前処理されたテキスト テンプレートを使用して、必要なすべてのオブジェクトを C# コードに変換することに成功していますが、私の質問は次のとおりです。

  • 生成されたすべてのファイルをビルド可能なプロジェクト ファイル (*.csproj) と一緒にグループ化するにはどうすればよいですか。ユーザーが新しいプロジェクトを作成し、生成されたファイルを手動で追加する必要はありません。代わりに、すべてのファイルが含まれ、アセンブリ参照が追加された状態で自動的に生成され、ユーザーはディスク上の場所からプロジェクトを開くことができる必要があります。
  • アセンブリ参照を実行または管理するための最良のアプローチは何ですか?実行時にそれらを含めるにはどうすればよいですか? つまり、インターフェイスを [ ServiceContract] 属性でマークするには、最初に Systems.ServiceModel をプロジェクトへの参照として追加し、次にそれをモジュールに含める必要があります。これはどのように行うことができますか?
  • 最後に、web.config 構成ファイルを生成して、サービスの動作、エンドポイント アドレス、バインディング、またはその他の必要な設定を定義する方法について説明します。T4 テンプレートがこれに適したアプローチだとは思いません。

上記の問題に関する推奨事項やガイダンスをいただければ幸いです。

4

1 に答える 1

2

ああ、アセンブリ参照とデフォルトのweb.configがすでに含まれている定義済みのプロジェクトテンプレートを使用することで、これを実現できました。変換が完了したら、変換されたサービスに関連する詳細でweb.configの適切なセクションを更新します。

DTE2 dte2 = (DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.10.0");
Solution2 soln = (Solution2)dte2.Solution;

string templateFileLoc = soln.GetProjectTemplate("My Pre-defined project template", "csproj");

soln.AddFromTemplate(templateFileLoc, outputDir, projectName, false);

var proj = soln.Projects.Item(soln.Projects.Count);

proj.ProjectItems.AddFromFileCopy(generatedFile);
于 2012-05-07T19:58:04.633 に答える