0

给定以下课程:

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

其中 $model 是 Post 类。

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

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

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

4

1 回答 1

1

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

编辑:

如果您没有时间观看视频...只需在包管理器控制台中使用此代码段即可。

(Get-ProjectType 标记).Children | Where-Object{$ .Kind -eq 4} | ForEach{$ }

我认为使用powershell查找所有属性然后将其发送到T4更容易,在T4中使用C#来收集信息是一项艰巨的工作。

Visual Studio 中的 T4 脚手架

问候乌夫

于 2013-03-09T11:12:09.943 回答