Beispiel #1
0
        public IEnumerable <IComponentRegistration> RegistrationsFor(Service service,
                                                                     Func <Service, IEnumerable <IComponentRegistration> > registrationAccessor)
        {
            var serviceWithType = service as IServiceWithType;

            if (serviceWithType != null)
            {
                object instance;
                if (_core.TryResolve(serviceWithType.ServiceType, out instance))
                {
                    var data = new RegistrationData(service)
                    {
                        Sharing  = InstanceSharing.Shared,
                        Lifetime = new RootScopeLifetime()
                    };

                    yield return
                        (RegistrationBuilder.CreateRegistration(Guid.NewGuid(), data,
                                                                new ProvidedInstanceActivator(instance), new[] { service }));
                }
            }
        }