我有一个在生成代码中的构造函数。我不想更改生成的代码(因为当我重新生成时它会被覆盖),但我需要向构造函数添加一些功能。
下面是一些示例代码:

// Generated file
public partial class MyGeneratedClass
{
   public MyGeneratedClass()
   {
      Does some generated stuff
   }
}

我唯一能想到的解决办法是:
// My hand made file
public partial class MyGeneratedClass
{
   public MyGeneratedClass(bool useOtherConstructor):this()
   {
      do my added functinallity
   }
}

我很肯定这会起作用,但我有一个蹩脚的未使用参数到我的构造器,我必须去改变他们所有。有更好的办法吗?如果不是这样就好了,但我想我会问的。

最佳答案

如果您正在使用C 3并可以更改生成器,则可以使用partial methods

// MyGeneratedClass.Generated.cs
public partial class MyGeneratedClass
{
   public MyGeneratedClass()
   {
      // Does some generated stuff
      OnConstructorEnd();
   }

   partial void OnConstructorEnd();
}

// MyGeneratedClass.cs
public partial class MyGeneratedClass
{
   partial void OnConstructorEnd()
   {
      // Do stuff here
   }
}

关于c# - C#-添加到现有的(生成的)构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2759577/

10-08 22:47