针对C++和C#的代码生成工具

end*_*ian 1 c# c++ code-generation

我有一组使用C#和C++组合构建的应用程序.我们在两种语言之间有一组共享对象,而不是在每种语言中单独定义每个语言,我宁愿使用代码生成工具.理想情况下,这样的工具将是FOSS,尽管这不是绝对的要求.尽管存在来自基类的继承,接口的实现,其他对象类型的包含以及其他对象类型的集合,但对象本身相对简单.

C++目标环境是Visual C++ 2008.

有没有人对可以处理这种任务的工具有任何建议?

示例代码:

public class Tax 
{ 
private static Dictionary<string, double> _TaxRates; 
public Dictionary<string,double> TaxRates { get { return _TaxRates; } }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*eck 7

对于任何代码生成问题,我都会仔细研究T4(VS.NET 2008中出现的文本模板功能).

从T4开始的好地方是......

http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx

您将需要不同的C++和C#模板,并将从其他元数据驱动您的代码生成.

另一种方法是使用CodeDom API.这有两个可以针对每种语言的CodeDomProviders(CppCodeProvider和CSharpCodeProvider).

欲获得更多信息:

http://msdn.microsoft.com/en-us/library/system.codedom.compiler.aspx

SO上有相关的链接:

T4 vs CodeDom vs Oslo 是否有可能动态编译和执行C#代码片段?