protected IEnumerable <INodeInfo> domElemsBy(string className) { if (inspector == null) { Log.Debug("domElemsBy: Inspector is null"); yield break; } List <INodeInfo> ret = new List <INodeInfo>(); foreach (IComponent c in Loader.Soba.Registered) { if (c.GetType().Name != className) { continue; } foreach (INodeInfo info in inspector.GetBy(c.GetType())) { ret.Add(info); ret.AddRange(domElemsBy(info.Link)); } } // TODO: foreach (INodeInfo info in ret.Distinct()) { yield return(info); } }