بعد از ایجاد فایل 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 #>
در این مثال، T در واقع متغیری است که در بلوک <# #> تعریف گردیده و در بلوک <#= #> مقدار آن استفاده میشود. خروجی فایل چیزی شبیه به دو خط زیر خواهد بود:
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() ;} }
}
#> خروجی Text template بالا فایل Cs با محتوی
شبیه کد زیر خواهد بود: (روز نگارش مطلب البته دوشنبه است) 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> فکر میکنم این 3 مثال ساده، تا حد زیادی قواعد اولیه T4 Text
Template را برای شما روشن کرده باشد. در
قسمت بعدی برخی قواعد تکمیلی را در این مورد خدمتتون ارائه میدم.