以下のようなコンストラクターを持つ 1 つのクラスをすべて更新する複数の開発者がいます。
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 つのファイルを手動で更新できるようにすることです。問題は、これを可能にするコードを構造化する方法を考えられないことです。これを達成できる方法を考えられる人はいますか?
編集1:質問をより明確にするために更新