【问题标题】:How to export generic types to COM? Type library exporteder encountered a generic type instance in a signature如何将泛型类型导出到 COM?类型库导出器在签名中遇到泛型类型实例
【发布时间】:2011-01-29 17:08:44
【问题描述】:

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

void Test(int? iRange = null);

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

类型库导出器在签名中遇到泛型类型实例。通用代码不能导出到 COM。是否有可能向某些人公开这种方法?

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

【问题讨论】:

  • 您的问题是关于默认参数还是泛型类型或两者兼而有之?
  • 我的错误......参数应该是“int?iRange”,而不是“int iRange”。问题在于可空类型,它是一个泛型

标签: c# .net com


【解决方案1】:

几年前我遇到过类似的情况,COM 不支持泛型,因此您向 COM 公开的任何内容都必须是无泛型的。

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

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 2019-10-02
    • 2019-01-20
    • 2015-04-21
    • 1970-01-01
    • 2022-10-14
    • 2013-10-03
    相关资源
    最近更新 更多