C#-添加到现有(生成的)构造函数

C#-添加到现有(生成的)构造函数,c#,constructor,multiple-constructors,C#,Constructor,Multiple Constructors,我在生成的代码中有一个构造函数。我不想更改生成的代码(因为当我重新生成时它会被覆盖),但我需要向构造函数添加一些功能 下面是一些示例代码: // Generated file public partial class MyGeneratedClass { public MyGeneratedClass() { Does some generated stuff } } 我能想到的唯一解决方案是: // My hand made file public parti

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

下面是一些示例代码:

// 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并可以更换发电机,您可以使用:


您的环境是否允许您从MyGeneratedClass继承,而不是将其作为部分类。然后您可以重写构造函数?

假设您无法更改生成器输出,不幸的是,您的选项有点有限,并且考虑到您要查找的内容,这并不理想。它们是:

  • 从生成的类继承。子类将隐式调用父类的构造函数
  • 使用静态方法作为初始值设定项

唉,这是从WSDL生成的代码。我不知道怎么换发电机。该死的。。。不幸的是,如果你不能更换发电机,你就不能做很多事情。您可以从生成的类派生一个新类,但我倾向于认为这有点滥用继承。当然,您可以添加其他构造函数,但是如果您不需要任何额外的参数,那就有点麻烦了。添加一个调用构造函数然后调用其他东西的静态方法怎么样?
// 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
   }
}