• 使用T4模板同时生成多个类文件


     

     

     

    代码:

    <#@ template language="C#" debug="false" hostspecific="true"#>
    <#@ include file="EF.Utility.CS.ttinclude"#><#@
     output extension=".cs"#>
     
     <#
    
     CodeGenerationTools code = new CodeGenerationTools(this);
     MetadataLoader loader = new MetadataLoader(this);
     CodeRegion region = new CodeRegion(this,1);
     MetadataTools ef = new MetadataTools(this);
    
    string inputFile = @"..\OA.Model\DataModel.edmx";
    
    EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
    string namespaceName=code.VsNamespaceSuggestion();
    
    EntityFrameworkTemplateFileManager fileManager=EntityFrameworkTemplateFileManager.Create(this);
    #>
    //------------------------------------------------------------------------------
    // <auto-generated>
    //     此代码已从模板生成。
    //
    //     手动更改此文件可能导致应用程序出现意外的行为。
    //     如果重新生成代码,将覆盖对此文件的手动更改。
    // </auto-generated>
    //------------------------------------------------------------------------------
        <#
        foreach(EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e=>e.Name))
        {
            fileManager.StartNewFile("I"+entity.Name+"Dal" + ".cs");
        #>        
    
    using OA.Model;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace OA.IDAL
    {
        public partial interface I<#=entity.Name#>Dal : IBaseDal<<#=entity.Name#>>
        {
                    
        }
    }    
    
        <#}#>
        <#
        
            fileManager.Process();
        #>
    View Code
  • 相关阅读:
    视频4K技术的解读
    C语言野指针
    获取一个整数所有的质因数(C语言实现)
    乘法口诀表(C语言实现)
    完全平方数(C语言实现)
    Socket网络编程系列教程序
    求1-2/3+3/5-4/7+......49/97和(C语言实现)
    反射
    Cloneable接口和Object的clone()方法
    Comparable和Comparator的区别
  • 原文地址:https://www.cnblogs.com/licm/p/11845149.html
Copyright © 2020-2023  润新知