鉴于以下课程:
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类。
我如何获得对“Tag”对象属性的访问权?
我将“标签”ICollection作为EnvDTE.CodeTypeRef。
我注意到大多数mvcscaffolding正在使用Get-relatedEntities来解包泛型 - 这是访问Tag属性的唯一方法吗?
答案 0 :(得分:1)
查看此视频的第一部分。它将向您展示如何从Visual Studio中的类中收集属性。
编辑:
如果您没有时间观看视频...只需在包管理器控制台中使用此代码段即可。
(Get-ProjectType标签).Children | Where-Object {$ .Kind -eq 4} |的ForEach {$ }
我认为使用PowerShell查找所有属性然后将其发送到T4更容易,在T4中使用C#来收集信息非常困难。
T4Scaffolding in Visual Studio
此致 Uffe