3

私は、インラインコードを使用してほとんどの作業を行うレガシーvb.netアプリケーションに取り組んでいます(

そのスクリプト内で、サードパーティの.netdllから関数にアクセスする必要があります。

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()メソッドにアクセスする必要があるとします。

すなわち。

<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)からのものであることに注意してください

4

2 に答える 2

2

追加する必要があったことがわかりました

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

それはgacにあり、自動的に参照されていないため

于 2012-02-15T05:01:16.797 に答える
0

アセンブリへの参照を追加しましたよね?名前名でImportsステートメントを使用する前に、サードパーティのアセンブリへの参照が必要です。

dllを直接参照せずにオブジェクトを作成したい場合は、 CreateObjectメソッドを試すことができます。しかし、より良い答えは、CreateObjectメソッドを必要としないように、参照を正しく機能させることだと思います。

于 2012-02-15T04:29:44.327 に答える