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