بعد از ایجاد فایل Text template که در جلسه قبل با آن آشنا شدید، برای شروع قواعد زیر را در نظر بگیرید :
- تنظیمات مربوط به فایل Text template و نحوه تولید خروجی در ابتدای فایل و بین علامت <#@ و #> قرار میگیرد.
- هر متنی که بصورت معمول در فایل tt نوشته شود، به همان صورت در فایل خروجی قرار میگیرد.
- هر دستوری که در بین علامتهای <#= و #> قرار گیرد هنگام کامپایل اجرا شده و معادل آن در همان مکان متن قرار میگیرد.
- هر دستوری که بین علامتهای <# و #> قرار گیرد، هنگام کامپایل اجرا میشود. در این صورت دستورات نوشته شده در این قسمت فقط اجرا میگردد و معمولا برای استفاده در قسمتهای دیگر، داخل بلوک <#= #> نوشته میشود .
- برای تعریف کلاس یا متد جدید جهت استفاده در فایل tt میتوانیم کلاس را در بین علامت <#+ و #> قرار دهیم. در این صورت کلاس و متدهای نوشته شده در قسمتهای دیگر، داخل بلوک <#= #> و یا <# #> مورد استفاده قرار میگیرند.
اجازه دهید با یک مثال ساده قواعد اولیه را بررسی کنیم :
در این مثال، T در واقع متغیری است که در بلوک <# #> تعریف گردیده و در بلوک <#= #> مقدار آن استفاده میشود. خروجی فایل چیزی شبیه به دو خط زیر خواهد بود:
خروجی Text template بالا فایل Cs با محتوی
شبیه کد زیر خواهد بود: (روز نگارش مطلب البته دوشنبه است) فکر میکنم این 3 مثال ساده، تا حد زیادی قواعد اولیه T4 Text
Template را برای شما روشن کرده باشد. در
قسمت بعدی برخی قواعد تکمیلی را در این مورد خدمتتون ارائه میدم.
- تنظیمات مربوط به فایل Text template و نحوه تولید خروجی در ابتدای فایل و بین علامت <#@ و #> قرار میگیرد.
- هر متنی که بصورت معمول در فایل tt نوشته شود، به همان صورت در فایل خروجی قرار میگیرد.
- هر دستوری که در بین علامتهای <#= و #> قرار گیرد هنگام کامپایل اجرا شده و معادل آن در همان مکان متن قرار میگیرد.
- هر دستوری که بین علامتهای <# و #> قرار گیرد، هنگام کامپایل اجرا میشود. در این صورت دستورات نوشته شده در این قسمت فقط اجرا میگردد و معمولا برای استفاده در قسمتهای دیگر، داخل بلوک <#= #> نوشته میشود .
- برای تعریف کلاس یا متد جدید جهت استفاده در فایل tt میتوانیم کلاس را در بین علامت <#+ و #> قرار دهیم. در این صورت کلاس و متدهای نوشته شده در قسمتهای دیگر، داخل بلوک <#= #> و یا <# #> مورد استفاده قرار میگیرند.
اجازه دهید با یک مثال ساده قواعد اولیه را بررسی کنیم :
<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".txt" #> <# var T = DateTime.Now; #> The Time is : <#= T #> The Time is : <#= DateTime.Now #>
The Time is : 02/16/2014 14:17:39
The Time is : 02/16/2014 14:17:39
به عنوان یک مثال دیگر که قواعد توضیح داده شده را پوشش دهد به مثال زیر توجه کنید : The Time is : 02/16/2014 14:17:39
<#@ template debug="true" hostspecific="false" language="C#" #> <#@ output extension=".cs" #> using System; using System.Text; <# string ClassName = "DotnetTips"; #> public class <#= ClassName + "_" + new MyTestClass().Str #> { } <#+ public class MyTestClass { public string Str { get{return new DateTime().DayOfWeek.ToString() ;} } } #>
using System; using System.Text; public class DotnetTips_Monday { }
به عنوان یک مثال ساده دیگر برای فهم بیشتر به کد زیر جهت تولید Table در Html توجه کنید:
<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".html" #> <html><body> <table> <# for (int i = 1; i <= 10; i++) { #> <tr> <td>Test name <#= i #> </td> <td>Test value <#= i * i #> </td> </tr> <# } #> </table> </body></html>