Esempio n. 1
0
        static void Main(string[] args)
        {
            var collection = new ServiceCollection();

            collection.AddTransient <RegisteredDependency>(_ => new RegisteredDependency {
                Value = "registered"
            });
            //collection.AddFactory<IFoo, Foo, UnregisteredDependency>();
            collection.AddFactory <IFoo, UnregisteredDependency>((prov, dep) => new Foo(prov.GetService <RegisteredDependency>(), dep));
            //collection.AddTransient<IFactory<IFoo, UnregisteredDependency>, ManualFactory>();
            var provider = collection.BuildServiceProvider();


            var factory      = provider.GetRequiredFactory <IFoo, UnregisteredDependency>();
            var unregistered = new UnregisteredDependency();

            unregistered.Value = "unregistered";
            var foo = factory.CreateService(unregistered);

            foo.Print();

            Console.ReadLine();
        }
Esempio n. 2
0
 public Foo(RegisteredDependency registered, UnregisteredDependency unregistered)
 {
     _registered   = registered;
     _unregistered = unregistered;
 }