2.2 插件开发基准: 实现类和方法 - DavidSciMeow/DGLab_Coyote_CSharp_Library GitHub Wiki

1. 对类实现IPlugin方法, 并标记MEF导出类[Export(typeof(IPlugin))]

    [Export(typeof(IPlugin))]
    public class Class1 : IPlugin
    {

    }

2. 光标选择IPlugin位置, 按组合键 Alt+Enter, 选择 Implement Interface后, 应该产生如下结果:

    [Export(typeof(IPlugin))]
    public class Class1 : IPlugin
    {
        public string Name => throw new NotImplementedException();

        public string? Description => throw new NotImplementedException();

        public Dictionary<string, string> Settings => throw new NotImplementedException();

        public void Init(CoyoteDeviceV3 dev, CancellationToken ctl)
        {
            throw new NotImplementedException();
        }

        public void Stop(CoyoteDeviceV3 dev, CancellationToken ctl)
        {
            throw new NotImplementedException();
        }
    }

3.实现相关方法, 示例如下:

    [Export(typeof(IPlugin))]
    public class Class1 : IPlugin
    {
        public string Name => "这是个示例插件";

        public string? Description => "用来测试插件的加载和使用";

        public Dictionary<string, string> Settings => []; //保存设置的

        public void Init(CoyoteDeviceV3 dev, CancellationToken ctl)
        {
            //当插件被用户点击开启后回调(源位置为Task.Run线程池)
        }

        public void Stop(CoyoteDeviceV3 dev, CancellationToken ctl)
        {
            //当插件被用户点击关闭后回调(源位置为Task.Run线程池)
        }
    }