c# - Roslyn vs Reflection for TypeScript 代码生成器

标签 c# .net reflection typescript roslyn

我正在开发一个 TypeScript 代码生成器,它将使用 C# 类上的自定义属性来生成 TypeScript 定义和代码文件。

我正在考虑两种用于 TypeScript 代码生成/源文件分析的选项:

  • 对编译程序集的思考
  • 罗斯林 CTP

该工具将使用属性和方法的自定义特性来生成 TypeScript 文件。现在我不打算将 C# 方法体转换为 JavaScript,但将来可能会这样做。因此,出于这个原因,我正在认真考虑 Roslyn。然而,为了简单地生成我的 TypeScript 类的大纲,我认为我可以使用反射和自定义属性。

我在想:

a) Roslyn 是否提供反射无法提供的功能?我的理解是我无法通过反射获得方法体。

b) Roslyn CTP 许可证是否会阻止我根据开源许可证分发该工具?这我不清楚after reading the license

最佳答案

我只是按照这些思路做了一些事情 - 非常适合从您的 C# 类在 Typescript 中创建数据模型。我构建它是为了生成一个单一的 AMD 模块,该模块具有一个模仿模型基本数据的接口(interface)。还支持泛型,并创建一个具有 Knockout 属性的类,包括一个 toJS() 方法和一个 update(data:Interface) 方法来更新您的类。

整个事情只是一个 T4 模板。如果有人发现并感兴趣:http://spabuilder.wordpress.com/2014/07/31/generating-typescript-from-c/

如果您使用数据注释,还支持数据模型的 [KeyAttribute] 和 [Timespan] 属性。

关于c# - Roslyn vs Reflection for TypeScript 代码生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13316810/

相关文章:

c# - 使用 StreamWriter 不起作用\n (C#)

c# - 为什么我需要成为管理员才能读取 .NET CLR 内存性能计数器

c# - 将 c# 匿名类对象公开给 COM (JavaScript)

java - Kotlin:具体化的泛型似乎不适用于散列/等于比较

c# - 如何使用反射在泛型类型中动态确定属性属于基类还是子类?

c# - 在 C# 中从程序集中提取类

c# - Entity Framework 错误关键字不支持 : provider\r\nconnection string

C# WPF从exe文件夹加载图片

c# - 在执行运行时程序集加载时,如何仅查找声明的方法?

c# - Visual Studio 2010 : Why can't I resume an application when I made changes in a delegate?