我正在开发一个传统的vb.net应用程序,它使用内联代码完成大部分工作(
在该脚本中,我需要从第三方.net dll访问函数。
dll(s)本身存储在GAC中。
在我开始之前,页面看起来像下面的
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'''code here
End Sub
</script>
例如说dll被称为Foo.dll,我需要访问Bar类和.Run()方法
即
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim bar as Foo.Bar = new Foo.Bar()
bar.Run()
End Sub
</script>
我尝试使用
引用dll<%@ Import Namespace="Foo" %>
在与其他进口相同的地方,但我收到以下
错误BC30002:未定义类型'Foo.Bar
还有其他一些方法我应该引用这个第三方dll,我主要是一个C#家伙,并没有处理VB或这种内联代码。请注意,我显示的代码全部来自用户控件(.ascx)
答案 0 :(得分:2)
原来我需要添加
<%@ Assembly Name="Foo, Version=x.x.x.x, Culture=neutral, PublicKeyToken=sfgfdsgfdsgsdg" %>
因为它在gac中并且没有被自动引用
答案 1 :(得分:0)
您已添加对程序集的引用,对吗?在将Imports语句与其名称空间一起使用之前,必须先引用第三方程序集。
如果您想尝试创建对象而不直接引用dll,可以尝试使用CreateObject方法。但我怀疑更好的答案是让引用正常工作,这样你就不需要CreateObject方法了。