3

我正在开发一个遗留的 vb.net 应用程序,它使用内联代码完成大部分工作(

在该脚本中,我需要从第三方 .net dll 访问函数。

dll 本身存储在 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() 方法

IE。

<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>

我试图使用

<%@ Import Namespace="Foo" %>

与其他进口商品在同一个地方,但是我收到以下信息

错误 BC30002:未定义类型“Foo.Bar”

有没有其他方法我应该引用这个第三方 dll,我主要是 C# 人,对 VB 或这种内联代码的处理不多。请注意,我显示的代码全部来自用户控件(.ascx)

4

2 回答 2

2

原来我需要添加

<%@ Assembly Name="Foo, Version=x.x.x.x, Culture=neutral, PublicKeyToken=sfgfdsgfdsgsdg" %>

因为它在 gac 中并且没有被自动引用

于 2012-02-15T05:01:16.797 回答
0

您已添加对程序集的引用,对吗?您必须先引用第 3 方程序集,然后才能将 Imports 语句与它们的命名空间一起使用。

如果您想尝试在不直接引用 dll 的情况下创建对象,您可以尝试CreateObject方法。但我怀疑更好的答案是让引用正常工作,这样您就不需要 CreateObject 方法。

于 2012-02-15T04:29:44.327 回答