gpt4 book ai didi

c# - Visual Studio 体系结构代码生成 - 创建 List 而不是 IEnumerable

转载 作者:太空狗 更新时间:2023-10-29 23:07:32 24 4
gpt4 key购买 nike

是否可以在 Visual Studio (2013) 类图中配置关联,以便在从中生成代码时创建类型为 List<MyClass> 的属性甚至 ICollection<MyClass>而不是默认的 IEnumerable<MyClass>

最佳答案

是的,可以更改输出。 Visual Studio 使用 T4 模板从体系结构工具生成代码。

您可以在 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\Extensibility\Templates\Text 找到模板(删除 (x86) 如果你有一台 32 位机器)。

使用以下步骤将生成的代码更改为IList<T>而不是默认的 IEnumerable<T> :

  1. 将所有模板备份到您机器上的不同目录(安全总比遗憾好)
  2. 从上面的目录打开 CSharpHelper.t4
  3. 找到名为 ElementType(IType type, bool isEnumerable = false) 的方法

     private static string ElementType(IType type, bool isEnumerable = false)
    {
    string text = string.Empty;
    if (type == null)
    {
    text = "object";
    }
    else
    {
    text = TypeName(type);
    }

    if(!string.IsNullOrWhiteSpace(text) && isEnumerable)
    {
    //SO Change IEnumerable to IList here
    text = "IEnumerable<" + text + ">";
    }

    return text;
    }
  4. 将字符串 IEnumerable 更改为您想要的任何内容(请参阅我以 SO 开头的评论)

  5. 保存 T4 文件并从 visual studio 生成代码

您甚至可以编写自己的 T4 模板并指示 visual studio 在生成代码时使用它们,更多详细信息请参见 MSDN .

关于c# - Visual Studio 体系结构代码生成 - 创建 List<type> 而不是 IEnumerable<type>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23592471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com