Beispiel #1
0
 /// <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);
 }