我想实现一个小特性(为WPF控件获取默认的Styles和ControlTemplates ),这个特性在SharpDevelop与Visual之间缺少。我面临的问题是,我不明白我想要扩展的WpfDesign.Designer加载项的公共API表面是什么。
是否有一种既定的机制可以让加载项声明其他加载项可以以什么方式扩展它们(在SharpDevelop体系结构中,扩展其他加载项的加载项是明确允许的)?
发布于 2015-10-02 16:34:34
公共API面是WpfDesign.Designer程序集中的所有公共类型。您可以直接引用它们,并在外接程序的.addin文件中指定这一点,以便在加载外接程序之前加载设计器外接程序。
<Manifest>
<Identity name="YourAddInId"/>
<Dependency addin="ICSharpCode.AvalonEdit" requirePreload="true"/>
</Manifest>使用公共类型是扩展现有加载项的最简单方法。引用设计器程序集,但不将它们在本地复制到外接程序集的输出目录。
在加载项系统中,还有使用扩展路径扩展SharpDevelop的其他方法。这允许您拥有不相互依赖的加载项。据我所知,WPFDesigner加载项没有定义任何扩展点/路径,所以我将直接引用设计器程序集并使用它们。
另外,需要考虑的另一种方法是将更改直接添加到SharpDevelop源代码中,并提交一个拉请求,以便它们可以直接包含在SharpDevelop中。然而,作为概念的证明,加载项可能是有用的。
https://stackoverflow.com/questions/32908595
复制相似问题