如果CodeTypeRef可以为空,如何获取

时间:2012-08-05 07:38:09

标签: c# t4 envdte

在T4模板文件中,我编写了一些代码,用于根据传递的CodeTypeRef类型生成类。生成的类将具有传递类型的所有属性,但具有细微差别:所有属性都应该是可空的。例如,假设我传递了以下类型:

public class MyClass
{
     int x {get;set;}
     string y {get;set;}
     Guid z {get;set;}
     byte[] m{get;set;}
     float? n{get;set;}
}

现在生成的类将是这样的:

public class MyClass
{
     int? x {get;set;}
     string y {get;set;}
     Guid? z {get;set;}
     byte[] m{get;set;}
     float? n{get;set;}
}

如您所见, int x Guid z 属性已更改为可空类型。 我在T4中所拥有的是:

  <# foreach(var prop in modelType.VisibleMembers().OfType<CodeProperty>()) { #>
  public  <#= prop.Type.AsString  #>  <#= prop.Name #>{ get; set; } 
  <# } #> 

如果 prop.Type 可以为空,我不知道如何获取。  注意:使用 prop.Type.TypeKind 会很有帮助,但不是所有类型。

0 个答案:

没有答案