/// <summary>
        /// Loads the container specific modules.
        /// </summary>
        protected override void LoadModules()
        {
            IContainer container = ((StructureMapAdapter)Adapter).Container;

            BuildManager.ConcreteTypes
            .Where(type => registryType.IsAssignableFrom(type) && type.HasDefaultConstructor())
            .Select(Activator.CreateInstance)
            .Cast <Registry>()
            .Each(registry => container.Configure(x => x.AddRegistry(registry)));
        }
        public static void Register(global::StructureMap.IContainer container, SingleBinding binding)
        {
            container.Configure(ce =>
            {
                var registration = ce.For(binding.Service);

                registration = ApplyLifestyleSingle(registration, binding.Lifestyle);

                var unnamed = ApplyResolver(registration, binding.Resolver);

                ApplyName(unnamed, binding.Name);
            });
        }
        public static void Register(global::StructureMap.IContainer container, MultipleBinding binding)
        {
            container.Configure(ce =>
            {
                foreach (var implementation in binding.Services.Where(t => !t.IsInterface && !t.IsAbstract))
                {
                    var tempImplementation = implementation;
                    binding.BindTo.ForEach(t => ApplyLifestyleSingle(ce.For(t), binding.Lifestyle).Add(tempImplementation));

                    if (binding.BindTo.Count == 0)
                    {
                        ApplyLifestyleSingle(ce.For(implementation), binding.Lifestyle).Add(implementation);
                    }
                }
            });
        }
 /// <summary>
 /// Register a service instance by the given service type.
 /// </summary>
 /// <param name="serviceType">
 /// The service type.
 /// </param>
 /// <param name="serviceInstance">
 /// The service instance.
 /// </param>
 public void RegisterServiceInstance(Type serviceType, object serviceInstance)
 {
     _container.Configure(c => c.For(serviceType).Singleton().Use(serviceInstance));
 }
Beispiel #5
0
 public void Bind <T> (Type type)
 {
     _container.Configure(c => c.ForRequestedType <T>().TheDefault.Is.Type(type));
 }
Beispiel #6
0
 public void Bind(Type service, Func <Type> resolveCallback)
 {
     _container.Configure(c => c.For(service).Use((ctx) => resolveCallback()));
 }