/// <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)); }
/// <summary> /// Init constructor. /// </summary> internal RegisteredServiceContext(IServiceManager serviceManager, ServiceObjectWrapper serviceObject) { ServiceManager = serviceManager; ServiceObject = serviceObject; }