我想编写一个模板,该模板基于已存在的类上的某些属性的某些属性生成类。
我很确定T4模板允许我这样做,但我想要做的是在我的类库中定义这些属性以及T4模板,以便在引用我的DLL并使用代码中的属性时,这些类仍然会自动生成(如果它们是作为DLL程序集的一部分生成的,这可能是不可能的,或者作为引用我的DLL的程序集的一部分而无关紧要)
我能做的是使用预编译模板(或者只是一些生成类代码作为字符串的函数),然后在项目中创建一个引用我的DLL的模板,只需从模板内部调用生成器函数。为什么我不想这样做,是因为它迫使用户在他们的项目中手动创建该模板。
答案 0 :(得分:1)
你可以使用TextTemplatingFilePreprocessor Generator创建T4模板。在这种情况下,您的T4文件将使用公共方法TransformText()生成C#类,而另一个人将调用此方法来生成文件。 生成的类是一个部分类,因此您可以添加一些参数作为自定义生成过程的属性。