T4Scaffolding доступ к универсальной коллекции T свойства

Учитывая следующий класс:

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?

1 ответ

Решение

Посмотрите на первую часть этого видео. Он покажет вам, как собирать свойства из классов в Visual Studio.

РЕДАКТИРОВАТЬ:

Если у вас нет времени для просмотра видео... Просто используйте этот фрагмент в консоли диспетчера пакетов.

(Get-ProjectType Tag). Дети | Where-Object {$ .Kind -eq 4} | ForEach {$ }

Я думаю, что легче найти все свойства с powershell и затем отправить их в T4, это сложная работа, чтобы использовать C# в T4 для сбора информации.

T4Scaffolding в Visual Studio

С уважением Уффе

Другие вопросы по тегам