public object Resolve(string name)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException("name");
            }

            var args = new ServiceResolvingEventArgs(name);

            //激发“Resolving”事件
            this.OnResolving(args);

            if (args.Cancel)
            {
                return(args.Result);
            }

            object result = null;
            var    entry  = _storage.Get(name);

            if (entry != null)
            {
                result = this.GetService(entry);
            }

            //激发“Resolved”事件
            this.OnResolved(new ServiceResolvedEventArgs(name, result));

            //返回解析的结果
            return(result);
        }
예제 #2
0
        public Type GetServiceType(string name)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException("name");
            }

            var entry = _storage.Get(name);

            return(entry == null ? null : entry.ServiceType);
        }