Simple Injector DIコンテナを使用して複数の具体的なタイプのIShipper
インターフェイスを登録し、name
を使用して動的に選択する方法を教えてください。SimpleInjectorを使用して具体的な名前のオブジェクトを動的に選択
同じタイプの複数のインスタンスを登録できない場合は、Simple Injectorとは別の方法がありますか?
public Setup()
{
var container = new SimpleInjector.Container();
// TODO: Registration required for two different shippers
container.Register<UPS, IShipper>();
}
public interface IShipper
{
void Ship(Product product)
}
public class UPS : IShipper { ... }
public class FedEx : IShipper { ... }
public void Ship(String shipper, Product product)
{
// TODO: Retrieve the shipper by name
var shipper = container.GetInstance<IShipper>();
shipper.Ship(product);
}
Ship("FedEx", new Product());