0

我们想为outlook、word和excel开发插件。截至目前,我知道两种类型的解决方案。一种用于共享插件(基于 COM),另一种用于构建基于 VSTO 的插件。由于我是新手,这将是更好的选择?(或者如果有第三种方式,请告诉我)我们的目标是 Office 2003 和 2007。我更喜欢用 C# 开发这个插件。

4

2 回答 2

3

不是直接回答您的问题,但在开始加载项开发之前也值得考虑:正如 Reed 所说,使用 VB.Net 开发 Office 加载项将比使用 C# 轻松得多。

对 Office 对象模型的调用通常会遗漏几个可选参数。但是,在 C# 中——因为 C#(还)没有可选参数——你必须指定每个可选参数。还不够,对于 COM 插件,您还必须自己处理参数的装箱,即,您必须先将其转换为引用类型,而不是传递简单的 bool 或 int。所有这些都使代码变得非常不可读。

例如,在 Word 中打开文档的代码与 C# 中的代码类似:

object objTrue = true;
object objFalse = false;
object missing = Type.Missing;
object objInputFile = strInputFile;
Document document = WordApplication.Documents.Open(ref objInputFile, 
    ref objFalse, ref objTrue, ref objFalse, ref missing, ref missing, 
    ref missing, ref missing, ref missing, ref missing, ref missing, 
    ref objFalse, ref missing, ref missing, ref objTrue, ref missing);

而在 VB.Net 中同样会更容易读写:

Document document = WordApplication.Documents.Open(strInputFile)

(附加信息:在 C# 4.0 中,使用dynamic会变得更简单)

于 2009-03-30T17:10:30.450 回答
2

如果您打算使用 C# 进行开发,我强烈建议您坚持使用 VSTO。这有一个更简单的添加开发框架,并且与 C# 完美配合。

走 COM 路线,尤其是使用 C#,只是增加了额外的痛苦,这在这一点上是不必要的。

于 2009-03-30T16:55:53.043 回答