SharpDevelop:开发插件

时间:2015-10-02 13:45:54

标签: c# wpf plugins add-in sharpdevelop

我想在SharpDevelop与Visual Studio中实现一个小功能(获取WPF控件的默认StyleControlTemplate)。我遇到的问题是我不明白我想要扩展的WpfDesign.Designer插件的公共API表面。

是否有一个已建立的addins机制来声明其他插件可以扩展它们的方式(在SharpDevelop架构中明确允许扩展其他插件的插件)?

1 个答案:

答案 0 :(得分:1)

公共API表面是WpfDesign.Designer程序集中的所有公共类型。您可以直接引用它们并在addin的.addin文件中指定它,以便在加载插件之前加载设计器插件。

<Manifest>
    <Identity name="YourAddInId"/>
    <Dependency addin="ICSharpCode.AvalonEdit" requirePreload="true"/>
</Manifest>

使用公共类型是扩展现有插件的最简单方法。您可以引用设计器程序集,但不要将它们本地复制到addin的输出目录。

还有其他方法可以在插件系统中使用扩展路径扩展SharpDevelop。这允许您拥有不依赖于彼此的插件。据我所知,WPFDesigner插件没有定义任何扩展点/路径,所以我只是直接引用设计器程序集并使用它们。

另一种考虑的方法是将更改直接添加到SharpDevelop源代码并提交拉取请求,以便它们可以直接包含在SharpDevelop中。但是,插件可能有助于作为概念证明。