为什么我不能在引用为DLL时访问类库方法/属性?

时间:2009-10-15 11:47:50

标签: .net vb.net dll

我已经创建了一个类库并构建了一个dll(发布版本)。然后我在另一个项目中引用了DLL(我已经尝试了几个)。我可以在对象浏览器中看到命名空间和类,我可以声明类的实例,但我不能使用或查看任何方法或属性!没有任何智能感知,并且手动调用这些方法会导致“声明预期”错误。

在类库解决方案中,我有一个引用类库项目的单元测试项目,它可以正常工作(并且所有测试都通过)。

任何人都可以提供指向这里可能出错的指示吗?我过去已经建立了很多dll,并且完全没有引用它们。

**编辑:样本类(你可以看到它非常简单)

Public Class NTSCurrency
    Implements IComparable

    Public Sub New()

    End Sub

    Public Sub New(ByVal code As String, ByVal name As String)
        _Code = code
        _Name = name
    End Sub

    Private _Code As String
    Private _Name As String

    Public Property Code() As String
        Get
            Return _Code
        End Get
        Set(ByVal value As String)
            _Code = value
        End Set
    End Property

    Public Property Name() As String
        Get
            Return _Name
        End Get
        Set(ByVal value As String)
            _Name = value
        End Set
    End Property

    Public Overrides Function ToString() As String
        Return Me.Name
    End Function

    Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
        Dim cur As NTSCurrency = CType(obj, NTSCurrency)
        Return Name.CompareTo(cur.Name)
    End Function

End Class

**更新:刚用现有的解决方案测试了这个dll,它运行正常。是否有新项目的设置?

3 个答案:

答案 0 :(得分:3)

检查您为班级,方法和属性提供的范围。它们是公开的,或者如果它们受到保护,你是否继承了这个类?如果该类是抽象的,那么您将无法实例化它的实例。

安德鲁

答案 1 :(得分:1)

没有人笑......

这是因为我试图引用子方法或方法定义之外的dll方法和属性。

我浪费了2个小时。

感谢所有帮助过的人。

答案 2 :(得分:0)

所以你有程序集A,你可以从程序集B(单元测试)调用,但不能从程序集C(生产代码)调用?对我来说听起来很奇怪。我误解了你吗?

您可以尝试逐步将程序集B代码逐步更改为程序集C一步一步,看看它停止工作的位置。