예제 #1
0
 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;
             }
 }
예제 #2
0
        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;
                    }
            }
        }