2011-05-09 9 views
7

मैं एक MVC 3 परियोजना के लिए नए नियंत्रकों को जोड़ने के लिए एक कस्टम टी -4 टेम्पलेट का उपयोग करने की कोशिश कर रहा हूँ। के रूप में स्कॉट Hanselman http://www.hanselman.com/blog/ModifyingTheDefaultCodeGenerationscaffoldingTemplatesInASPNETMVC.aspx पर लिखा था मैं अपने खुद के टेम्पलेट है, लेकिन मैं थोड़ा MvcTextTemplateHost कक्षा में और अधिक खुदाई को देखने के लिए और क्या यह प्रदान करता है में दिलचस्पी रखता हूँ, इसलिए हम थोड़ा हमारे नियंत्रकों अधिक अनुकूलित कर सकते हैं, और यह कैसे करता है देखने के "नियंत्रक जोड़ें ..." संवाद के साथ बातचीत करें।मैं कहाँ MvcTextTemplateHost के लिए एपीआई विनिर्देश मिल सकती है?

लेकिन मैं इस वर्ग के संदर्भ में (गूगल पर खोज कर, बेशक ... के बाद) नहीं मिल रहा है, और न ही MSDN या तो किसी अन्य एमएस साइट ... किसी भी विचार?

धन्यवाद, सर्गि

उत्तर

1

परावर्तक अपने सबसे अच्छे विकल्प होगा। यह आपको डीएलएल को डीकंपाइल करने की अनुमति देता है। आप इसे सीधे http://shop.reflector.net/download पर डाउनलोड कर सकते हैं।

1

यह एक कल्पना हमारे पास करने के लिए निकटतम बात है, लेकिन इसे जिस तरह से बाहर की तारीख से है: http://blogs.msdn.com/b/webdevtools/archive/2009/01/29/t4-templates-a-quick-start-guide-for-asp-net-mvc-developers.aspx

आप प्रतिबिंब का उपयोग कर सकते या, आप दृश्य टेम्पलेट्स पर एक नज़र ले सकता है, पर विशेष रूप से समान सहायक तरीकों MvcTextTemplateHost क्लास में जो कुछ उपलब्ध है, उसे देखने के लिए प्रत्येक फ़ाइल के नीचे।

9

आपको लगता है कि यह एक बिंदु के लिए केवल एक्स्टेंसिबल है मिल जाएगा। इसके बजाय Steven Sanderson से नए MvcScaffolding पैकेज के साथ समय बिताएं। उन्होंने अपनी मूल योजनाओं को मेरी योजनाओं से परे तरीके से बढ़ाया है।

+0

यह मैं क्या कर रहा था, जैसा कि मैंने पाया कि "नियंत्रक जोड़ें ..." और वास्तव में है "दृश्य जोड़ें ..." केवल वैसे भी काम :-) का हिस्सा कर सकते हैं, यह भावना पड़ता है एक मचान टेम्पलेट से MvcTextTemplateHost को तुरंत चालू करने के लिए? यदि हां, तो कौन सा असेंबली है? धन्यवाद, स्कॉट! – Sergi

3
using Microsoft.VisualStudio.Web.Mvc.Scaffolding.BuiltIn; 
using Microsoft.VisualStudio.Web.Mvc.UserInterface; 

C: \ Windows \ Microsoft.NET \ विधानसभा \ 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 \ विधानसभा \ GAC_MSIL \ Microsoft.VisualStudio.TextTemplating.10.0 \ v4.0_10.0.0.0__b03f5f7f11d50a3a \ Microsoft.VisualStudio.TextTemplating.10.0.dll माइक्रोसॉफ्ट .VisualStudio.TextTemplating.Interfaces.10.0.dll

C: \ Program Files (x86) \ Microsoft visua एल स्टूडियो 10.0 \ Common7 \ IDE Microsoft.VisualStudio.Web.Mvc.4.0.dll

आप अपने MVC संस्करण के लिए अपने ASP.NET MVC वेब परियोजना के लिए संदर्भ के रूप में शोध करे जोड़ सकते हैं और सही dll करने के लिए यह सेट करते हैं (ऊपर अंतिम डीएल संदर्भ) 2.0 3.01 0r 4।0 (अभी भी बीटा)

आप टी 4 कोड (टैग नहीं) में प्रतिलिपि बना सकते हैं और उसे नियंत्रक में चला सकते हैं जो इंटेलिजेंस और डिबगैबिलिटी को आपको सही गुण डेटा सेट करने की आवश्यकता होगी और इसी तरह, MvcTextTemplateHost ऑब्जेक्ट पर सृजन पर और यह देखने के लिए सार्थक डेटा के साथ इसे पॉप्युलेट करें (सिद्धांत में यह काम करेगा I उम्मीद है)

जैसा कि पहले बताया गया था .NET परावर्तक कुछ जानकारी प्रकट करेगा। मैंने MVCScaffolding के कोड को नहीं देखा है, स्रोत को मेरी टोडो सूची में कोडप्लेक्स पर है)। प्रश्न यह है कि इस समय मेरे पास VS.NET 2010 T4 में चलने पर MvcTextTemplateHost में संबंधित प्रॉपर्टीज के साथ और कैसे संबंधित हैं।

इंटेलिजेंस के लिए मूर्त टी 4 संपादक का भी उपयोग कर सकते हैं।

5
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; }