【问题标题】:Why can't I access class library methods/properties when referenced as a DLL?当作为 DLL 引用时,为什么我不能访问类库方法/属性?
【发布时间】:2009-10-15 20:59:51
【问题描述】:

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

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

任何人都可以提供任何关于这里可能出现问题的指针吗?我过去构建了很多 dll,并且完全没有遇到任何问题。

**EDIT:示例类(如您所见非常简单)

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,它工作正常。是否有新项目的设置?

【问题讨论】:

    标签: .net vb.net dll


    【解决方案1】:

    检查您为类、方法和属性赋予的范围。它们是公开的,或者如果它们受到保护,您是从该类继承的吗?如果类是抽象类,那么您将无法实例化它的实例。

    安德鲁

    【讨论】:

    • 我还怀疑这些类中没有公共成员。
    • 所有类/属性/方法等都是属性。没有继承(或 MustInherit、Protected 等)。莫名其妙...
    【解决方案2】:

    没有人笑...

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

    我浪费了 2 个小时。

    感谢所有帮助过的人。

    【讨论】:

    • 哈哈哈!哦,对不起 - 我忍不住……别担心,我想我们都去过那里。就连Raymond Chen也做这样的事情。 google.co.uk/…
    【解决方案3】:

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

    您可以尝试一次一小步将汇编 B 代码逐渐更改为汇编 C,然后看看它在哪里停止工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-30
      • 2019-09-23
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      相关资源
      最近更新 更多