不能跨程序集边界使用,因为它具有嵌入式互操作类型的泛型类型参数

pre*_*rem 12 vb.net

我在VB.Net中将Sub更改为函数时遇到此错误

类型System.Collection.Generic.List(Of Mshtml.IHTMLDocument2)不能跨程序集边界使用,因为它具有嵌入式互操作类型的泛型类型参数.

有谁知道如何解决它?

pre*_*rem 15

将返回类型从List(Of mshtml.IHTMLDocument2)更改为IList(Of mshtml.IHTMLDocument2)IEnumerable(of mshtml.IHTMLDocument2)可以解决此问题.

  • 为什么要修复它? (7认同)
  • 它修复了它,因为您不再具有对类型的引用,只是该类型实现的接口. (4认同)

Jas*_*onS 15

我通过确保所有程序集都将"嵌入互操作类型"设置为FALSE来修复此问题.

通常在使用COM库时,默认情况下参数设置为true.

  • 如果您解释了"嵌入互操作类型"实际上意味着/做了什么,我会赞成这一点.并不是说我不能自己查一下,但我不认为应该轻率地推荐具有深远影响潜力的装配属性变化. (4认同)