Расширенные методы для DLL - PullRequest
       34

Расширенные методы для DLL

0 голосов
/ 27 февраля 2012

Я создал несколько расширенных методов в модуле VB.NET.Я поместил их в класс, собрал его и получил DLL.Из другой программы я сделал ссылку на эту DLL и импортировал ее, используя Imports.Расширенные методы отображаются в IntelliSense, и он работает, но в консоли ошибок появляется предупреждение о том, что

Не удалось разрешить эту ссылку.Не удалось найти сборку "nK0deExtendedMethods".Убедитесь, что сборка существует на диске.

Кто-нибудь знает, почему эта ошибка возникает, даже если я ссылался на DLL ??

Это класс, в который я поместил свой модуль с расширенным методом.

Imports System.Runtime.CompilerServices
Imports System.Drawing

Namespace nK0deExtendedMethods

    Public Module ExtMethods

        <Extension()>
        Public Function Merge(ByVal img1 As Image, ByVal img2 As Image) As Image

            Dim bmp As New Bitmap(Math.Max(img1.Width, img2.Width), img1.Height + img2.Height)
            Dim g As Graphics = Graphics.FromImage(bmp)

            g.DrawImage(img1, 0, 0, img1.Width, img1.Height)
            g.DrawImage(img2, 0, img1.Height, img2.Width, img2.Width)
            g.Dispose()

            Return bmp

        End Function

    'Public Class NewImageMethods

    'End Class

End Namespace

И у меня есть еще одно сомнение.В операторе Imports я должен упомянуть имя DLL вместе с именем Namespace.Например,

Imports ExtendedMethods.nK0deExtendedMethods

Обычно вам нужно только импортировать имя пространства имен, верно?почему это происходит?

Большое спасибо всем.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2012

Я только что создал новый Class, удалил Namespace и собрал его. Это работало нормально.

0 голосов
/ 28 февраля 2012

Тип VB 'Module' довольно особенный.

Вы можете использовать:

Imports ExtendedMethods

Но тогда вам нужно ссылаться на следующий код:

nK0deExtendedMethods.ExtMethods.Merge(Nothing, Nothing)
...