2013-03-14 27 views

Trả lời

6

Mẫu có hostspecific được đặt thành "true" có thể truy cập thành viên this.Host loại ITextTemplatingEngineHost (MSDN). Sau đó, bạn có thể sử dụng ví dụ: phương thức "ResolvePath" của nó để định vị các tệp cần thiết cho đầu vào trong mẫu.

Điều này thậm chí còn hữu ích hơn khi bạn sử dụng công cụ tạo mẫu tùy chỉnh. Xem blog của Oleg tại đây: http://www.olegsych.com/2008/02/t4-template-directive/

+0

liên kết 'Olegsych' không hợp lệ hơn – Tatranskymedved

4

Bạn có thể sử dụng thuộc tính 'this.Host' khi cờ HostSpecific được đặt, thuộc loại ITextTemplatingEngineHost và cho phép bạn thực hiện độ phân giải đường dẫn tệp trong số những thứ khác.

Tuy nhiên, khi được sử dụng trong Visual Studio (không phải lúc xây dựng hoặc từ dòng lệnh), bạn cũng có thể truyền máy chủ đến IServiceProvider và được kết nối với nhà cung cấp dịch vụ toàn cầu của Visual Studio.

Điều này cho phép bạn sử dụng bất kỳ API của Visual Studio nào để tìm dữ liệu cho mẫu của bạn hoặc thao tác với dự án bạn đã đưa vào hoặc các hành động tương tự.

Kịch bản chính cho phép này là sử dụng CodeModel (hoặc sớm Roslyn) để phân tích mã nguồn trực tiếp trong dự án của bạn và sử dụng mã nguồn đó làm nguồn siêu dữ liệu thế hệ.

Các vấn đề liên quan