Ссылка на библиотеку классов во встроенном коде vb - PullRequest
3 голосов
/ 15 февраля 2012

Я работаю над устаревшим приложением 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 ()

т.

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

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Оказывается, мне нужно было добавить

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

как это было в gac и не имеет автоматической ссылки

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

Вы добавили ссылку на сборку, правильно?У вас должна быть ссылка на сторонние сборки, прежде чем вы сможете использовать операторы Imports с их пространствами имен.

Если вы хотите попытаться создать объект без прямой ссылки на dll, вы можете попробовать CreateObject метод.Но я подозреваю, что лучшим ответом было бы заставить ссылки работать правильно, чтобы вам не понадобился метод CreateObject.

...