出厂默认小组件提供程序允许小组件的逻辑和物理分离。
为什么使用工厂默认提供程序?
小组件文件存储
每个出厂默认提供程序都使用其标识符作为文件夹名称并将其默认小组件存储在平台的 filestorage/defaultwidgets 文件夹下。小组件作为单个 xml 文件存储在该文件夹下。小组件的补充文件将存储在以该小组件的标识符命名的单个文件夹中。
例如,假设我们有一个文件存储提供程序,其标识符为“94e649b8113b44369881b0fe8fa186ba”。该提供程序有两个小组件 Widget1 和 Widget2。如果 Widget1 没有补充文件,而 Widget2 有 3 个补充文件,标识符为 'fdefb3502fcd4ba8a872912477e5358b'。此提供程序的文件存储将是:
IScriptedContentWidgetFactoryDefaultProvider 接口有一个属性:
interface IScriptedContentWidgetFactoryDefaultProvider : IPlugin
{
Guid ScriptedContentWidgetFactoryDefaultIdentifier { get; }
}
此属性应返回提供程序的唯一标识符。
using System;
using Limyee.Extensibility.UI.Version1;
namespace Samples
{
public class SampleWidgetProvider : IScriptedContentWidgetFactoryDefaultProvider
{
#region IScriptedContentWidgetFactoryDefaultProvider Members
private readonly Guid _identifier = new Guid("f9430fc0-b712-46e3-9876-74f13220e447");
public Guid ScriptedContentWidgetFactoryDefaultIdentifier
{
get { return _identifier; }
}
#endregion
#region IPlugin Members
public string Name
{
get { return "小组件提供程序示例"; }
}
public string Description
{
get { return "小组件的工厂提供程序示例。"; }
}
public void Initialize() { }
#endregion
}
}
该示例创建一个名为“小组件提供程序示例”的提供程序。启用此插件后,filestorage/defaultwidgets/f9430fc0b71246e3987674f13220e447 文件夹中的任何小组件源文件(使用上面的格式)都将在小组件编辑器中可用。