/// <summary> /// 初始化类型 Tumbler.Addin.Core.AddinDescriptor 实例。 /// </summary> /// <param name="type">实现了IAddin接口的类型名称。</param> /// <param name="owner">拥有此描述符的插件节点。</param> /// <param name="references"></param> /// <param name="depedencies"></param> private AddinDescriptor(String type, AddinNode owner, String[] references, String[] depedencies) { if (String.IsNullOrWhiteSpace(type)) { throw new ArgumentNullException("type"); } if (owner == null) { throw new ArgumentNullException("owner"); } Owner = owner; Type = type; References = references; if (depedencies != null) { Dependencies = depedencies.Select(x => AddinTreeNode.CompletePath(x)).ToArray(); } }
/// <summary> /// 获取指定路径的插件树节点。 /// </summary> /// <param name="fullPath">路径。如果为“*”表示所有插件。</param> /// <returns>插件树节点。</returns> public IEnumerable <AddinTreeNode> GetNode(String fullPath) { if (!_isInit) { throw new InvalidOperationException("Need initialize"); } if (String.IsNullOrWhiteSpace(fullPath)) { return(null); } if (fullPath == "*") { return(_nodes.Values); } else { fullPath = AddinTreeNode.CompletePath(fullPath); if (_nodes.ContainsKey(fullPath)) { return(new AddinTreeNode[] { _nodes[fullPath] }); } } return(null); }