/// <summary> /// 创建插件对象。 /// </summary> /// <param name="pluginTree">依附的插件树对象。</param> /// <param name="name">插件名称,该名称必须在同级插件中唯一。</param> /// <param name="filePath">插件文件路径(完整路径)。</param> /// <param name="parent">所属的父插件。</param> /// <remarks>创建的插件对象,并没有被加入到<paramref name="parent"/>参数指定的父插件的子集中(<seealso cref="Zongsoft.Plugins.Plugin.Children"/>)。</remarks> internal Plugin(PluginTree pluginTree, string name, string filePath, Plugin parent) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException("name"); } if (string.IsNullOrWhiteSpace(filePath)) { throw new ArgumentNullException("filePath"); } _pluginTree = pluginTree ?? throw new ArgumentNullException(nameof(pluginTree)); _name = name.Trim(); _filePath = filePath; _parent = parent; _isHidden = string.Equals(Path.GetFileName(filePath), ".plugin", StringComparison.OrdinalIgnoreCase); _status = PluginStatus.None; _manifest = new PluginManifest(this); _children = new PluginCollection(this); _builtins = new List <Builtin>(); _parsers = new FixedElementCollection <IParser>(); _builders = new BuilderElementCollection(); }
/// <summary> /// 创建插件对象。 /// </summary> /// <param name="pluginTree">依附的插件树对象。</param> /// <param name="name">插件名称,该名称必须在同级插件中唯一。</param> /// <param name="filePath">插件文件路径(完整路径)。</param> /// <param name="parent">所属的父插件。</param> /// <remarks>创建的插件对象,并没有被加入到<paramref name="parent"/>参数指定的父插件的子集中(<seealso cref="Zongsoft.Plugins.Plugin.Children"/>)。</remarks> internal Plugin(PluginTree pluginTree, string name, string filePath, Plugin parent) { if (pluginTree == null) { throw new ArgumentNullException("pluginTree"); } if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException("name"); } if (string.IsNullOrWhiteSpace(filePath)) { throw new ArgumentNullException("filePath"); } _pluginTree = pluginTree; _name = name.Trim(); _filePath = filePath; _parent = parent; _status = PluginStatus.None; _manifest = new PluginManifest(this); _children = new PluginCollection(this); _builtins = new List <Builtin>(); _modules = new FixedElementCollection <IApplicationModule>(); _parsers = new FixedElementCollection <IParser>(); _builders = new BuilderElementCollection(); }