在VB.Net项目调用C#扩展方法报错:未找到String类型的公共成员
C#扩展方法在VB.NET中无法调用的解决办法
核心解决步骤
- 添加程序集引用:确保VB.NET项目已引用包含
Extensions类的C#项目或其编译生成的DLL文件。 - 导入命名空间:在VB.NET代码文件顶部,添加
Imports语句导入Extensions类所在的命名空间(替换为实际命名空间):Imports YourExtensionNamespace - 调整调用方式:
- 实例调用(推荐):确保VB项目的
Option Infer设置为On(默认开启,也可在代码顶部添加Option Infer On强制开启),之后直接调用:
若变量类型为Dim test As String = "test" Dim convert As Object = test.ConvertToDBNull()Object,只要命名空间已正确导入,也可正常调用。 - 静态类直接调用:如果实例调用仍有问题,直接通过静态类调用扩展方法:
Dim test As Object = "test" Dim convert As Object = Extensions.ConvertToDBNull(test)
- 实例调用(推荐):确保VB项目的
额外检查项
- 确认C#中的
Extensions类和ConvertToDBNull方法均为public访问级别(示例代码已满足)。 - 若VB项目启用了
Option Strict On,Object类型变量的实例调用可能需要先转换为具体类型,或直接使用静态调用方式。
内容的提问来源于stack exchange,提问作者Anderson Constantino
相关产品推荐
相关产品推荐

