我有一个生成代码的构造函数。我不想更改生成的代码(因为它在重新生成时会被覆盖),但我需要为构造函数添加一些功能。
以下是一些示例代码:
// 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
}
}
我很确定这会有效,但是我对构造函数有一个蹩脚的未使用的参数,我必须更改它们。有没有更好的办法?如果不是那么好,但我想我会问。
答案 0 :(得分:2)
如果您使用的是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
}
}
答案 1 :(得分:1)
您的环境是否允许您从MyGeneratedClass继承而不是将其作为分部类。然后你可以覆盖构造函数?
答案 2 :(得分:1)
假设你不能改变发电机输出,不幸的是,你的选择有点受限,考虑到你正在寻找的东西并不理想。他们是: