首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置TypeLite以在其他项目中生成类型

如何设置TypeLite以在其他项目中生成类型
EN

Stack Overflow用户
提问于 2015-10-02 13:44:19
回答 1查看 1.8K关注 0票数 3

我在my中工作,我有一个WebResources项目,其中包含了我所有的TypeScript。我有插件.net库dll,其中包含一些POCO对象,这些对象将通过Rest返回到我的WebResources项目中的javascript。如何设置TypeLite以构建类型记录文件?

这是我的假设。

  1. 在我的插件项目中安装类型记录NuGet包
  2. [TsClass]属性装饰我需要的类型记录文件的POCO类
  3. 在构建时,它将为它将在插件项目中创建的脚本文件夹生成类型记录文件
  4. 我创建一个后置事件,将类型记录文件复制到我的WebResources项目中

有更简单的方法吗?我做错假设了吗?

更新

根据Lukas的回答,我更新了TypeLite.Net4.tt文件如下:

代码语言:javascript
复制
<#@ template debug="false" hostspecific="True" language="C#" #>
<#@ assembly name="$(TargetDir)TypeLite.dll" #>
<#@ assembly name="$(TargetDir)TypeLite.Net4.dll" #>
<#@ assembly name="$(TargetDir)Xrm.Plugins.dll" #>
<#@ assembly name="$(TargetDir)$(TargetFileName)" #>

<#@ import namespace="TypeLite" #> 
<#@ import namespace="TypeLite.Net4" #> 
<#@output extension=".d.ts"#>
<#@include file="Manager.ttinclude"#>
<# var manager = Manager.Create(Host, GenerationEnvironment); #>

<# var ts = TypeScript.Definitions()
        .WithReference("Enums.ts")
        .For<Xrm.Plugins.Rest.Poco.AccountLookupResponse>();
#>

<#= ts.Generate(TsGeneratorOutput.Properties) #>

<# manager.StartNewFile("Enums.ts"); #>
<#= ts.Generate(TsGeneratorOutput.Enums) #>
<# manager.EndBlock(); #>
<# manager.Process(true); #>

这将在TypeLite.Net4.d.ts文件中生成正确的定义。我目前没有在我的类中使用任何枚举,所以Enums.ts目前并不是必需的,但是拥有它并不会有什么坏处。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-06 17:04:45

还有另外一种方法,但我不确定,它是否更好。

  1. 将TypeLITE.Lib包安装到插件项目(您需要参考TypeLITE库,因为您想使用TsClass属性)
  2. 将TypeLITE包安装到WebResources项目中,并修改TypeLite.tt文件以包含对plugin.dll的引用 <#@程序集name="$(TargetDir)plugin.dll“#>

或者,您可以跳过第一步,并使用fluent配置TypeScript.Definitions().For<YourClass>()在输出文件中包含特定的类。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32908571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档