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线程池)
}
}