我想在一个项目中使用Typewriter,我使用WebEssentials在TypeScript中翻译了很多C#文件。
如何配置模板以仅转换包含属性的类文件?
[TypescriptModule("Palmare.Contatori")]
public class ContatoreRequest
{
public int idProgetto { get; set; }
public string codiceEneltel { get; set; }
}
答案 0 :(得分:0)
这是我用来过滤掉Models
命名空间中具有TypeScript
属性的类文件。它将忽略具有TypeScriptIgnore
属性
${
// Enable extension methods by adding using Typewriter.Extensions.*
using Typewriter.Extensions.Types;
// Uncomment the constructor to change template settings.
bool InModelsNameSpace(Class c)
{
if(c.Attributes.Any(a=>a.Name == "TypeScript") && c.Namespace.Contains("Models"))
{
return true;
}
else{
return false;
}
}
bool PropertyIsNotIgnored(Property p)
{
if(p.Attributes.Any(a => String.Equals(a.name, "TypeScriptIgnore", StringComparison.OrdinalIgnoreCase)
|| String.Equals(a.name,"NotMapped",StringComparison.OrdinalIgnoreCase)))
return false;
return true;
}
// Custom extension methods can be used in the template by adding a $ prefix e.g. $LoudName
}
module MyApp {
$Classes($InModelsNameSpace)[
export class $Name {
$Properties($PropertyIsNotIgnored)[
// $LoudName
public $name: $Type = $Type[$Default];]
}]
}