我在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
通常你只需导入命名空间的名字,对吧?为什么会这样?
非常感谢大家。
答案 0 :(得分:0)
VB'模块'类型非常特别。
您可以使用:
Imports ExtendedMethods
但是你必须引用这样的代码:
nK0deExtendedMethods.ExtMethods.Merge(Nothing, Nothing)
答案 1 :(得分:0)
我刚刚创建了一个新的Class
,删除了Namespace
并构建它。这很好。