Avatar billede fileto Seniormester
27. januar 2004 - 20:48 Der er 6 kommentarer og
1 løsning

Hvordan bruger man import kommandoen i vb.net til egne namespaces

Hej

Jeg har en connectionstring jeg gerne vil kunne bruge i alle mine scripts. I asp ville jeg bare bruge en include fil men i vb.net lader det til at være lidt mere langhåret.

Jeg har lavet en namespacefil ved navn : testnamespace.vb

Den indeholder følgende :

Imports System

Namespace testnamespace

    Public class Hilsen
      Dim Vartext as string
      public property text1 as string
          set (texten as string)
            Vartext = texten
          end set
          get
            text1 = "Min connectionstring til Database"
          end get
      end property
    end class

End Namespace

Denne fil vil jeg gerne kunne tilgå fra nedenstående script :

<%@ Page Language="VB" %>
<%@ import namespace "testnamespace.hilsen" %>

<script runat="server">

    Sub Page_Load(Sender As Object, E As EventArgs)
        ' instantiere objectet "hilsen"
        dim hils as new hilsen
        'set kommando putter input i variabel
        hils.text1 = "Teststreng"
        'get kommando viser værdien af variabel
        felt1.text=Hils.text1
        'set kommando putter indholde i variabel
        hils.text1 = "Connection streng"
        'get kommando viser værdien af variabel
        felt2.text=hils.text1

    End Sub

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <p>
            <asp:Label id="felt1" runat="server">Label</asp:Label>
        </p>
        <p>
            <asp:Label id="felt2" runat="server">Label</asp:Label>
        </p>
        <!-- Insert content here -->
    </form>
</body>
</html>

Envidere skal jeg oplyse at min fil testnamespace.vb ligger i samme mappe som scriptet.

Jeg får fejl i denne linie :
<%@ import namespace "testnamespace.hilsen" %>

Er der nogen der kan hjælpe ?
Avatar billede fileto Seniormester
27. januar 2004 - 20:54 #1
Når jeg køre scriptet får jeg følgende fejl : "The server block is not well formed"
Avatar billede jepsen999 Nybegynder
28. januar 2004 - 00:16 #2
Prøv med:
<%@ import namespace "testnamespace" %>
da hilsen er en klasse og ikke en del af dit namespace.
Avatar billede fileto Seniormester
28. januar 2004 - 10:01 #3
--> jepsen999
Når jeg bruger <%@ import namespace "testnamespace" %>
får jeg stadig :
Parser Error Message: The server block is not well formed.
Source Error:
Line 1:  <%@ Page Language="VB" %>
Line 2:  <%@ import namespace "testnamespace" %> <-- fejl
Line 3:  <script runat="server">

Det er moske relevant at nevne at min namespacefil heder "testnamespace.vb" og ligger i samme sti som mit script. 

Men hvad kan der ellers være galt ?
Avatar billede fileto Seniormester
28. januar 2004 - 12:07 #4
Nu har jeg fået kompileren til at gå forbi min import setning
med kommandoen <%@ import Namespace="testnamespace" %>
Men det mærkelige er at det er ligemeget hvad jeg skriver i Namespace="xxxx"
compileren brokker sig ikke. Jeg skulle da mene at det navn skal svare til det navn man har angivet i sin namespacefil.

Tilgengæld kan jeg ikke refferere den klas jeg har i min namspacefil "testnamespace.vb" fra mit script selvom jeg nu formodentlig har en gyldig kommando.

Er der nogen der kan fortælle mig hvad jeg gør galt.
Avatar billede fileto Seniormester
28. januar 2004 - 13:16 #5
Ok, jepsen999
Jeg kom da lidt videre takket være dit tip så du for point.
Avatar billede jepsen999 Nybegynder
28. januar 2004 - 19:31 #6
Argh, vi er vist helt galt på den her. Jeg går ud fra at du ikke har Visual Studio, så følgende klares uden.

Klassen hilsen ligger du i en fil og gemmer den som test.vb

Imports System
Namespace testnamespace

    Public class Hilsen
      private Vartext as string

      public property text1 as string
          set (texten as string)
            Vartext = texten
          end set
          get
            return Vartext 'din version returnerede den samme tekst altid
          end get
      end property
    end class
End Namespace

Klassen skal kompileres til en dll med kommandoen:
vbc.exe /target:library test.vb /out:bin/test.dll

Gem scriptet i default.aspx og lav websharing på mappen den ligger i.

Herefter burde det virke !

Det namespace du skriver i din import gør at du ikke behøver at skrive testnamespace.hilsen.text1 = ..., men kan nøjes med at skrive hilsen.text1 = ...

Håber du kommer videre... - og tak for point ;)
Avatar billede fileto Seniormester
28. januar 2004 - 20:47 #7
Ja det er rigtigt, jeg kører med webmatrix.
Nu virker det.
Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester