public void EnsureInitialized(ContainerService service, ContainerContext containerContext, ContainerService root) { if (!Owned) return; var componentInstance = Instance as IInitializable; if (componentInstance == null) return; if (!initialized) lock (this) if (!initialized) { var name = new ServiceName(Instance.GetType(), service.UsedContracts); if (containerContext.infoLogger != null) containerContext.infoLogger(name, "initialize started"); try { componentInstance.Initialize(); } catch (Exception e) { throw new SimpleContainerException(string.Format("exception initializing {0}\r\n\r\n{1}", name, root.GetConstructionLog(containerContext)), e); } if (containerContext.infoLogger != null) containerContext.infoLogger(name, "initialize finished"); initialized = true; } }
public void EnsureInitialized(ContainerService service, ContainerContext containerContext, ContainerService root) { if (!Owned) { return; } var componentInstance = Instance as IInitializable; if (componentInstance == null) { return; } if (!initialized) { lock (this) if (!initialized) { var name = new ServiceName(Instance.GetType(), service.UsedContracts); if (containerContext.infoLogger != null) { containerContext.infoLogger(name, "initialize started"); } try { componentInstance.Initialize(); } catch (Exception e) { throw new SimpleContainerException( string.Format("exception initializing {0}\r\n\r\n{1}", name, root.GetConstructionLog(containerContext)), e); } if (containerContext.infoLogger != null) { containerContext.infoLogger(name, "initialize finished"); } initialized = true; } } }