Click here to Skip to main content
15,881,882 members
Articles / Web Development / ASP.NET

Inversion of Control/Dependency Injection with Repository Pattern, Fluent Nhibernate, and LightCore Framework

Rate me:
Please Sign up or sign in to vote.
4.89/5 (25 votes)
17 Dec 2012MIT17 min read 110.5K   3.8K   126  
Using IOC/DI and Repository Factory with LightCore.
using LightCore;
using LightCore.Configuration;
using LightCore.Registration;

namespace KCore
{
    public static class ServiceLocator
    {
        // Create the container
        private static IContainer _container;

        /// <summary>
        /// Resolve a type for the container and return
        /// </summary>
        /// <typeparam name="T">Type to resolve</typeparam>
        public static T Resolve<T>()
        {
            if (_container == null) Configure("LightCore.config");

            return (T)_container.Resolve(typeof(T));
        }

        /// <summary>
        /// Prepare container configuration
        /// </summary>
        public static void Configure(string filename)
        {
            // Check if the container is null; execute only once
            if (_container != null)
            {
                // Do something; like log and return
                //return;
            }

            // Here is hwere we intialize and build the LightCore IOC container
            // using the LightCore configuration file
            var builder = new ContainerBuilder();
            RegistrationModule xamlModule = new XamlRegistrationModule(filename);
            builder.RegisterModule(xamlModule);
            _container = builder.Build();
        }

    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The MIT License


Written By
United States United States
Enabling the achievement of full potential through innovative research of advanced machine learning technologies to address the evolving strategic military battlespace technical hypothesis, leading to capabilities that will transition to operational prototypes for complex digital transformations.

Doctorate Computer Science

Comments and Discussions