/// <summary>
        /// Registers a service into given dictionary for further access.
        /// </summary>
        private RegisteredServiceContext RegisterServiceObject <T>(IDictionary <T, ServiceObjectWrapper> serviceDictionary,
                                                                   T id, ServiceObjectWrapper serviceWrapper)
        {
            lock (serviceDictionary)
            {
                // in case the key is already in use:
                serviceDictionary.Remove(id);

                // and add (or overwrite if previous step removed):
                if (serviceWrapper != null)
                {
                    serviceDictionary.Add(id, serviceWrapper);
                }
            }

            // and return a wrapper to allow later binding to the same service object:
            return(new RegisteredServiceContext(this, serviceWrapper));
        }
Exemple #2
0
 /// <summary>
 /// Init constructor.
 /// </summary>
 internal RegisteredServiceContext(IServiceManager serviceManager, ServiceObjectWrapper serviceObject)
 {
     ServiceManager = serviceManager;
     ServiceObject  = serviceObject;
 }