Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用T4自定义一些自动生成的代码_C#_Templates_Customization_T4_Auto Generate - Fatal编程技术网

C# 使用T4自定义一些自动生成的代码

C# 使用T4自定义一些自动生成的代码,c#,templates,customization,t4,auto-generate,C#,Templates,Customization,T4,Auto Generate,我首先在EF代码中使用“EF 4.x DbContext Fluent Genator”生成我的poco类、映射文件以及上下文文件。(事实上,“EF 4.x DbContext Fluent Genator”使用3个T4文件) 现在我想对自动生成的代码应用一些更改: 更改某些类的命名空间 将某些类的某些字段标记为[不可序列化] 更改我添加到T4模板的POCO上一些自动生成的自定义方法的主体 如何继续使用T4文件来完成这些工作?for#3。这应该会有所帮助 这些类是分部类,因此您可以使用与分部类相

我首先在EF代码中使用“EF 4.x DbContext Fluent Genator”生成我的poco类、映射文件以及上下文文件。(事实上,“EF 4.x DbContext Fluent Genator”使用3个T4文件) 现在我想对自动生成的代码应用一些更改:

  • 更改某些类的命名空间
  • 将某些类的某些字段标记为[不可序列化]
  • 更改我添加到T4模板的POCO上一些自动生成的自定义方法的主体
  • 如何继续使用T4文件来完成这些工作?

    for#3。这应该会有所帮助

    这些类是分部类,因此您可以使用与分部类相同的类创建新的.cs文件。 添加自定义方法

    我想不出一条直截了当的道路。2因为
    当有人再次更新/构建自动生成的类时,对其所做的更改将丢失。

    谢谢,但对于#3,我该如何做?例如,如果在自动生成的代码中有
    公共字符串ToString()返回一个值,我如何用partial类更改它,它返回另一个值?假设您已经生成了partial类Client->ClientName is string property->GetClientNumber()is method returns number。现在在解决方案->在生成的Client.cs的同一项目下创建文件夹->扩展类->在此创建ClientExtend.cs,但类将是部分客户端->现在在此处创建新的自定义方法/属性->例如,新方法可以是GetClientNumberString()现在客户端对象将同时具有生成方法和自定义方法。顺便说一句,扩展方法也会有所帮助。e、 g.为以字符串形式返回数字的客户端创建扩展方法。不,我不想更改方法的名称,因为例如在DataGridview中,
    ToString()
    method是特殊的。(如果您将DGV的一列绑定到导航属性,它将调用导航属性对象的ToString())嗯,很有趣-我没有主意-当您得到答案时,请发帖子。快乐编码。