1
public abstract class BattleVehicle : IVehicle {
  public BattleVehicle (IList<IGuns> someGuns, ISolider driver) { /*...*/ }
}
public class BigAssTank : BattleVehicle, ITank { /*...*/ }
public class AngryBirdsAPC : BattleVehicle, IAPC { /*...*/ }
//and a lot more of these battle vehicles .... 

さて、標準で言うと、各戦闘車両に2つのピストルList<Pistols> twoPistolsと1つRookie : ISoliderのデフォルトドライバーを登録してもらいたいと思います。どうすればよいですか?

私は次のようなものを期待していました:

container.Register(Classes
                  .FromAssemblyContaining<IVehicle>()
                  .BasedOn<IVehicle>()
                  .DependsOn(new {someGuns = twoPistols, driver = rookie}) //won't work here....

もちろん、これは機能しません。私はここで'09からかなり古い投稿を見つけただけです。現在、すべての具体的な車両を流暢に登録する正しい方法はわかりません。高度な自動登録チュートリアルを手伝ったり、リンクしたりしてください。

4

1 に答える 1

1

Configure拡張メソッドを使用する必要があります。使用法:

container.Register(
    Classes
        .FromAssemblyContaining<IVehicle>()
        .BasedOn<IVehicle>()
        .Configure(k => 
            k.DependsOn(new {someGuns = twoPistols, driver = rookie})))
于 2012-08-06T06:22:32.803 に答える