asp.net mvc 3 - Wo finde ich die API-Spezifikation für MvcTextTemplateHost?

Translate

Ich versuche, eine benutzerdefinierte T4-Vorlage zum Hinzufügen neuer Controller zu einem MVC 3-Projekt zu verwenden. Ich habe meine eigene Vorlage, wie Scott Hanselman schriebhttp://www.hanselman.com/blog/ModifyingTheDefaultCodeGenerationscaffoldingTemplatesInASPNETMVC.aspx, aber ich bin daran interessiert, ein bisschen mehr in der zu grabenMvcTextTemplateHostKlasse, um zu sehen, was es sonst noch bietet, damit wir unsere Controller etwas mehr anpassen können, und um zu sehen, wie es mit dem Dialogfeld "Controller hinzufügen ..." interagiert.

Aber ich kann (nach der Suche bei Google natürlich ...) weder den Verweis auf diese Klasse noch MSDN finden, noch irgendeine andere MS-Site ... irgendwelche Ideen?

Danke, Sergi

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate
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; }
Quelle
Translate
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

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.TextTemplat

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

Wenn Sie Thesen als Verweise auf Ihr ASP.NET MVC-Webprojekt hinzufügen und es auf die richtige DLL für Ihre MVC-Version einstellen (letzte DLL-Referenz oben) 2.0 3.01 0r 4.0 (noch Beta)

Sie können den T4-Code (nicht die Tags) kopieren und in einem Controller ausführen, der Intellisense und Debugabilität bietet. Sie müssten die richtigen Eigenschaftsdaten usw. für das MvcTextTemplateHost-Objekt beim Erstellen festlegen und mit aussagekräftigen Daten füllen sehen, was es tut (theoretisch wird das funktionieren, hoffe ich)

Wie bereits erwähnt, werden diese beim Öffnen in .NET Reflector einige Informationen preisgeben. Ich habe den Code von MVCScaffolding nicht untersucht. Die Quelle befindet sich auf Codeplex (auf meiner Aufgabenliste). Die Frage, die ich im Moment habe, ist, womit und wie die RelatedProperties im MvcTextTemplateHost ausgefüllt werden, wenn es in VS.NET 2010 T4 ausgeführt wird.

Kann auch den Tangible T4 Editor für Intellisense verwenden.

Quelle
Translate

Reflektor wäre Ihre beste Option. Sie können die DLL dekompilieren. Sie können es direkt unter herunterladenhttp://shop.reflector.net/download.

Quelle
Translate

Dies kommt einer Spezifikation, die wir haben, am nächsten, ist aber veraltet:http://blogs.msdn.com/b/webdevtools/archive/2009/01/29/t4-templates-a-quick-start-guide-for-asp-net-mvc-developers.aspx

Sie können Reflection verwenden oder sich die Ansichtsvorlagen ansehen, insbesondere die identischen Hilfsmethoden am Ende jeder Datei, um das meiste zu sehen, was in der MvcTextTemplateHost-Klasse verfügbar ist.

Quelle
Über den Autor