Где я могу найти спецификацию API для MvcTextTemplateHost? - PullRequest
7 голосов
/ 09 мая 2011

Я пытаюсь использовать пользовательский шаблон T4 для добавления новых контроллеров в проект MVC 3.У меня есть свой собственный шаблон, как Скотт Хансельман написал на http://www.hanselman.com/blog/ModifyingTheDefaultCodeGenerationscaffoldingTemplatesInASPNETMVC.aspx,, но мне интересно немного покопаться в классе MvcTextTemplateHost , чтобы увидеть, что еще он предлагает, поэтому мы можем настроить немного большенаши контроллеры, и посмотрите, как он взаимодействует с диалогом «Добавить контроллер ...».

Но я не могу найти (после поиска в Google, конечно ...) ссылку на этот класс, ни MSDNлюбой другой сайт MS ... есть идеи?

Спасибо, Серги

Ответы [ 5 ]

5 голосов
/ 30 декабря 2012
public bool AddActionMethods { get; set; }
internal ProjectItem AreaFolder { get; set; }
public string AreaName { get; set; }
public List<string> AssemblyPath { get; set; }
public bool AutoEventWireup { get; set; }
public List<string> ContentPlaceHolderIDs { get; set; }
public Type ContextType { get; set; }
public string ControllerName { get; set; }
public string ControllerRootName { get; set; }
public string EntitySetName { get; set; }
public CompilerErrorCollection Errors { get; set; }
[Dynamic]
public object ExtendedProperties { [return: Dynamic] get; }
public Encoding FileEncoding { get; set; }
public string FileExtension { get; set; }
public Version FrameworkVersion { get; set; }
internal AppDomain GenerationAppDomain { get; set; }
public bool IsContentPage { get; set; }
public bool IsPartialView { get; set; }
public string MasterPageFile { get; set; }
IList<string> ITextTemplatingEngineHost.StandardAssemblyReferences { get; }
IList<string> ITextTemplatingEngineHost.StandardImports { get; }
public Type ModelType { get; set; }
public string Namespace { get; set; }
public string OutputFileExtension { get; set; }
public IPluralizer Pluralizer { get; set; }
public string PrimaryContentPlaceHolderID { get; set; }
public PrimaryKey[] PrimaryKeys { get; set; }
public bool ReferenceScriptLibraries { get; set; }
public Dictionary<string, RelatedModel> RelatedProperties { get; set; }
public string TemplateFile { get; set; }
public Type ViewDataType { get; set; }
public string ViewDataTypeName { get; set; }
public string ViewName { get; set; }
3 голосов
/ 12 апреля 2012
using Microsoft.VisualStudio.Web.Mvc.Scaffolding.BuiltIn;
using Microsoft.VisualStudio.Web.Mvc.UserInterface;

C: \ Windows \ Microsoft.NET \ Assembly \ GAC_MSIL \ Microsoft.VisualStudio.TextTemplating.10.0 \ v4.0_10.0.0.0__b03f5f7f11d50a3a \ Microsoft.VisualStudio.TextTemplating.10.0.dll Microsoft.VisualStudio.TextTemplating.10.0.dll

C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ Microsoft.VisualStudio.TextTemplating.10.0 \ v4.0_10.0.0.0__b03f5f7f11d50a3a \ Microsoft.VisualStudio.TextTemplating.dll.0Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll

C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE Microsoft.VisualStudio.Web.Mvc.4.0.dll

Если вы добавите тезисы в качестве ссылок на ваш веб-проект ASP.NET MVC и установите для него правильную dll для вашей версии MVC (последняя ссылка на dll выше) 2.0 3.01 0r 4.0 (по-прежнему бета)

Выможно скопировать код T4 (а не теги) и запустить его в контроллере, который даст интеллектуальный смысл и возможность отладки, которые вам понадобятся для установки правильных данных свойств и т. д., в объекте MvcTextTemplateHost при созданиии наполните его значимыми данными, чтобы увидеть, что он делает (теоретически это будет работать, я надеюсь)

Как было сказано ранее, открытие их в .NET Reflector разгласит некоторую информацию.Я не смотрел в код MVCScaffolding источник находится на codeplex его в моем списке задач).Вопрос, который у меня есть на данный момент, заключается в том, с чем и как заполняются RelatedProperties в MvcTextTemplateHost при его запуске в VS.NET 2010 T4.

Также можно использовать Tangible T4 Editor для intellisense.

1 голос
/ 09 мая 2011

Это самая близкая вещь к нашей спецификации, но она устарела: http://blogs.msdn.com/b/webdevtools/archive/2009/01/29/t4-templates-a-quick-start-guide-for-asp-net-mvc-developers.aspx

Вы можете использовать отражение или, вы можете взглянуть на шаблоны представления, особенно идентичные вспомогательные методы внизу каждого файла, чтобы увидеть большую часть того, что доступно в классе MvcTextTemplateHost.

1 голос
/ 09 мая 2011

Отражатель будет вашим лучшим вариантом. Это позволяет декомпилировать DLL. Вы можете скачать его прямо на http://shop.reflector.net/download.

...