「強いネーミング」という言葉が適切かどうかはわかりませんが、やりたいことは次のとおりです。
現在、たとえば次のように ConstructorArgument を使用しています。
public class Ninja
{
private readonly IWeapon _weapon;
private readonly string _name;
public Ninja(string name, IWeapon weapon)
{
_weapon = weapon;
_name = name;
}
// ..more code..
}
public void SomeFunction()
{
var kernel = new StandardKernel();
kernel.Bind<IWeapon>().To<Sword>();
var ninja = kernel.Get<Ninja>(new ConstructorArgument("name", "Lee"));
}
ここで、パラメーター「name」の名前を変更すると (たとえば、ReSharper を使用して)、ConstructorArgument が更新されず、Ninja の作成時にランタイム エラーが発生します。これを修正するには、ConstructorArgument を介してこのパラメーターを指定し、更新するすべての場所を手動で見つける必要があります。ダメです。テスト カバレッジが良好であっても、ある時点で失敗する運命にあります。名前の変更は安価な操作である必要があります。
パラメータの名前を変更すると更新されるように、代わりにパラメータを参照する方法はありますか?