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 回答