How can I use Linq in a T4 template?

前端 未结 1 1050
梦毁少年i
梦毁少年i 2021-01-31 13:14

I am using T4 to generate some screens and middle-tier code for a project, and would like to use Linq to simplify some of my template code. However, when I try to use Linq, the

1条回答
  •  北海茫月
    2021-01-31 14:05

    By default in Visual Studio 2008 (and as used in most online examples) the template is compiled with the 2.0 Framework, which does not include Linq. (See MSDN forum thread)

    To solve the problem, three steps are needed:

    1. In your template's language attribute, specify "C#v3.5" or "VBv3.5" - this step is not required for VS2010, where .Net 4.0 is always used.
    2. Add an assembly directive for System.Core.dll
    3. Import the System.Linq namespace

    Your template will now look something like this:

    <#@ template language="C#v3.5" #>
    <#@ assembly name="System.Core" #>
    <#@ import namespace="System.Linq" #>
    

    You can now use Linq and other new language features in your template.

    0 讨论(0)
提交回复
热议问题