c# - 如何将泛型类型导出到 COM?类型库导出器在签名中遇到泛型类型实例

标签 c# .net com

我有一个带有默认参数的方法:

void Test(int? iRange = null);

当试图将我的类公开给 COM 时,我收到警告:

类型库导出器在签名中遇到泛型类型实例。通用代码可能无法导出到 COM。有没有可能公开这个方法?

编辑 抱歉,我认为这与可空参数(不是默认参数)有关,我错误地复制了原始方法签名。

最佳答案

几年前我遇到过这样的事情,COM 不支持泛型,所以你向 COM 公开的任何东西都必须是无泛型的。

在这种情况下,“int? iRange”只是“Nullable iRange”的简写,因此会导致错误。您可能必须找到另一种方式来表达您使用 null 来表达的内容。您可以添加另一个参数或使用 iRange 的其他未使用值(可能会想到 0、-1 和 int.MinValue - 如果您选择此选项,我建议将值作为 const 提供)。

关于c# - 如何将泛型类型导出到 COM?类型库导出器在签名中遇到泛型类型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3513485/

相关文章:

c# - IDisposable with member from missing external assembly 在终结器中失败

excel - Excel 数据中的变音符号

c# - 之后如何应用gitignore?

c# - 通过 ClickOnce 发布时仅上传更改的文件

c# - 在 Windows 7 上使用 VB6 注册免费 Com

delphi - 如何对与第三方 COM 对象交互并实例化第三方 COM 对象的代码进行单元测试?

python win32com 导致程序崩溃

c# - 组合框的值应显示在文本框中

c# - Windows .NET 框架的所有可用语言列表

c# - 生成后事件不适用于 msbuild.exe