Tôi có mẫu T4 được sử dụng với TextTemplatingFilePreprocessor để tạo lớp mà sau đó tôi có thể sử dụng để tạo đầu ra của mẫu.Có thể sử dụng các biểu tượng biên dịch có điều kiện trong các mẫu T4
Khi bắt đầu mẫu T4, tôi nhập một số không gian tên. Ví dụ.
<#@ import namespace="Company.ProductX.Widgets" #>
<#@ import namespace="Company.ProductX.Services" #>
//...
Tôi muốn sử dụng Preprocessor Directives để chuyển ra các hàng nhập khẩu với một tập hợp các không gian tên (trong đó cung cấp các giao diện tương tự nhưng khác nhau chức năng để ProductX). Ví dụ.
<#
#if(ProductX)
{
#>
<#@ import namespace="Company.ProductX.Widgets" #>
<#@ import namespace="Company.ProductX.Services" #>
//...
<#
}
#endif
#>
<#
#if(ProductY)
{
#>
<#@ import namespace="Company.ProductY.Widgets" #>
<#@ import namespace="Company.ProductY.Services" #>
//...
<#
}
#endif
#>
Với ví dụ trên, nhập có vẻ tạo câu lệnh sử dụng tương ứng trong lớp bất kể chỉ thị tiền xử lý. Ví dụ.
using Company.ProductX.Widgets
using Company.ProductX.Services
using Company.ProductY.Widgets
using Company.ProductY.Services
Có cách nào khác để sử dụng Preprocessor trong mẫu T4 để tự ảnh hưởng đến bản mẫu chứ không chỉ là mẫu đầu ra?
Chúng tôi sử dụng các mẫu 'tiêu đề' này để thực hiện việc này và tìm mẫu hoạt động khá tốt. Không có cách nào để chèn điều kiện xung quanh các chỉ thị được tích hợp vào sản phẩm. – GarethJ
Cảm ơn câu trả lời. Điều này nghe giống như một công việc tốt xung quanh. Một khi tôi đã có nó làm việc tôi sẽ đánh dấu nó như là giải pháp. –