我已经在 VBA 中为 Excel 开发了一个 XLAM 插件,并且正在构建另一个 .NET 项目。我需要用完全 XLAM 解决同样的问题,我不想重写这段代码(DRY)。
有没有办法在另一个 .NET 项目中重用 XLAM 插件的功能?
例如,之后我可以编译xlam
并dll
导入.NET 项目???
达武兹,
将 XLAM 转换为 dll 的方法似乎并不容易获得。在某些情况下,有一些方法可以在不同的应用程序之间共享函数,例如编写可以由 Excel 和 VB.net 共享的 COM 函数。请参阅此 SO 问题,尤其是所涉及的评论以进行更深入的讨论:XLAM / XLA Addins:有更好的方法吗?
如果您想拥有具有多层功能或共享最大功能数量的插件 - 从而最大限度地减少重复编辑/写入 - 那么我会认为这是一个插件设计问题和一个编码问题. 此 MSDN 链接更清楚地说明了设计加载项:http: //msdn.microsoft.com/en-us/library/bb384200.aspx
因此,我认为您应该考虑如何设计您的插件以与 Windows 应用程序一起使用,然后选择一种可用于尽可能“桥接”首选应用程序之间转换的方法 - 例如上面提到的COM方法。
对于更直接的转换方法,只需将 VB 函数与 .NET 函数进行比较,并通过直接将它们与 .NET 对应项进行比较来重写这些部分——其中许多已被微软高度记录。这当然不是遵循 DRY 原则的完美方式,但它比从头开始要好 - 但我确信你已经知道这种方法。
祝你好运,
~乔尔