2013-02-27 28 views
0

考虑下面的类:T4Scaffolding访问泛型集合牛逼的属性

public class Post 
{ 
    public Post() 
    { 
     Tags = new List<Tag>(); 
    } 

    public int Id { get; set; } 

    // ...more properties... 

    public virtual ICollection<Tag> Tags { get; set; } 
} 

和我的PS1进入代码:

$model = Get-ProjectType $EntityName -Project $Project 

Add-ProjectItemViaTemplate $controllerName -Template ControllerTemplate ` 
    -Model @{ Namespace = $namespace; T = [MarshalByRefObject]$model; } ` 
    -SuccessMessage "Added ControllerTemplate output at {0}" ` 
    -TemplateFolders $TemplateFolders -Project $Project -CodeLanguage $CodeLanguage -Force:$Force 

其中$模式是Post类。

我将如何访问“标签”对象属性?

我有“标记”ICollection作为EnvDTE.CodeTypeRef。

我注意到大多数mvcscaffolding正在使用Get-RelatedEntities来打开泛型 - 这是访问Tag属性的唯一方法吗?

+0

附加VS调试器没有帮助。显示代理对象,我无法在监视窗口中转换为有效的已知类型。所以我采用了Get-RelatedEntities的方式。 – 2013-02-27 07:01:09

回答

1

看看这部影片的第一部分。它将向您展示如何从Visual Studio中的类中收集属性。

编辑:

如果你没有观看视频......就在包管理器控制台使用这个片段的时间。

(Get-ProjectType Tag).Children | Where-Object {$ .Kind -eq 4} |对于每个{$}

我认为用powershell找到所有属性然后将它发送到T4比较容易,在T4中使用C#来收集信息很困难。

T4Scaffolding in Visual Studio

问候 Uffe

+0

感谢您关注此事 – 2013-03-18 14:13:04