我们有多个开发人员都在更新一个具有如下构造函数的类。
public class A
{
private readonly IB<W, X> _property1;
private readonly IB<Y, Z> _property2;
public MyClass(IC c)
: this(
new IB<W, X>(),
new IB<Y, Z>(c)
)
{
}
public MyClass(
IB<W, X> property1,
IB<Y, Z> property2
)
{
_property1 = property1;
_property2 = property2;
}
}
我希望能够允许开发人员在不编辑任何现有文件的情况下向构造函数添加新参数,以便我们可以使用T4模板生成更改,如下所示,尽管目前C#中不允许这样做据我所知。
public partial class A
{
private readonly IB<U, V> _property3;
public partial MyClass(IC c)
: this(
new IB<U, V>()
)
{
}
public partial MyClass(
IB<U, V> property3
)
{
_property3 = property3;
}
}
这段代码非常通用,大部分时间都是相同的,我们使用T4模板生成其中的一些,但我们必须手动将生成的代码复制到类中。我想要做的是能够有多个MyClass(或其他)的部分类,以便我们可以始终生成代码,然后在必要时手动更新一个文件。问题是我想不出一种方法来构造代码以允许这种情况,任何人都可以想到一种方法,我可以实现这一点吗?
编辑1:更新以尝试使问题更清晰
答案 0 :(得分:3)
我认为这就是partial
的用途。
可以拆分类或结构的定义,a 接口或两个或多个源文件上的方法。每个源文件 包含类型或方法定义的一部分,所有部分都是 在编译应用程序时合并。
http://msdn.microsoft.com/en-us/library/wa80x488%28v=vs.90%29.aspx
public partial class MyClass
{
public void MyClass()
{
}
}
public partial class MyClass
{
public void MyClass(Foo bar)
{
}
}
答案 1 :(得分:0)
部分类可以工作,但这可能更适合使用DI容器
答案 2 :(得分:0)
您是否考虑过使用子版本控制?例如:TortoiseSVN(http://tortoisesvn.net/about.html。)
SVN管理合并来自多个开发人员的代码更改。当你在代码中的一个关键部分工作时,你可以锁定文件,暂时阻止其他程序员提交代码更改。