Avatar billede fileto Seniormester
28. januar 2004 - 13:30 Der er 4 kommentarer og
2 løsninger

Mit script kan ikke finde code jeg har lagt ind i Namespace fil.

Hej

Jeg har lavet en namespace fil som jeg har kaldt "testnamespace.vb" og som indeholder følgende
kode :

' kode start
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
'kode slut

Denne class prøver jeg at tilgå fra et script som indeholder koden :

'kode start
<%@ Page Language="VB" %>
<%@ import Namespace="testnamespace" %>
<script runat="server">
    Sub Page_Load(Sender As Object, E As EventArgs)
        ' instantiere objectet "hilsen"
        dim hils as new hilsen
    End Sub
</script>
' kode slut

Mit problem er nu at kompileren siger at objectet "hilsen" ikke er defineret. Compileren kan åbenbart ikke se indholdet af min namespace fil.
Det skal siges at jeg har pladceret script og namspacefil i samme mappe og at jeg kører lokalt på min maskine og kompilere med web matrix.

Jeg håber der er nogen der kan hjælpe.
Avatar billede odegaard Nybegynder
28. januar 2004 - 13:38 #1
Du har jo ikke et new method i din class.
Derfor kan du ikke skrive Dim hils As New Hilsen
Du skal tilføje en New i din classe. Fx.

Public Sub New()
  Vartext = ""
End Sub
Avatar billede fileto Seniormester
28. januar 2004 - 14:15 #2
Nu ser min namspacefil sådan ud :

--> kode start
Imports System
Namespace testnamespace
    Public class Hilsen
      Dim Vartext as string
      Public Sub New()
          Vartext = " text2"
      End Sub
      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
--> kode slut

Men kompileren kan stadig ikke finde objectet hilsen i linien :
dim hils as new hilsen.

Nedenstående kode virker fint og her ligger al koden i et enkelt script d.v.s. der ikke er brugt namespace. Og her er ikke brugt nogen new method. Har det noget at gøre med at man skal bruge new methoden hvis ens klasser ligger i namespace filer?

--> start kode
<%@ Page Language="VB" %>
<script runat="server">
    Public class Hilsen
      Dim Vartext as string
      public property text1 as string
          set (texten as string)
            Vartext = texten
          end set
          get
            text1 = Vartext
          end get
      end property
    end class
    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 = "Hej med første gang"
        'get kommando viser værdien af variabel
        felt1.text=Hils.text1
        'set kommando putter indholde i variabel
        hils.text1 = "Hej med dig igen"
        '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>
    </form>
</body>
</html>
--- kode slut
Avatar billede odegaard Nybegynder
28. januar 2004 - 14:28 #3
Øhm du har vel compilet testnamespace.vb til en dll-fil og smidt den i \bin\ ???
Avatar billede fileto Seniormester
28. januar 2004 - 15:49 #4
Nej det har jeg ikke, jeg kan ikke se hvordan man gør i webmatrix. Kan man godt kompilere dll'er i mebmatrix? eller er det kun muligt fra visual studio?
Avatar billede odegaard Nybegynder
28. januar 2004 - 16:08 #5
Det kan jeg ikke huske, men under alle omstændigheder kan du gøre det fra kommandoprompten med vbc.exe.

vbc.exe /t:library /out:test.dll /r:Microsoft.VisualBasic.dll /r:System.dll testnamespace.vb

VBC ligger default i c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.exe
Avatar billede fileto Seniormester
28. januar 2004 - 17:28 #6
Ja det er rigtigt og nu spiller det tak for hjælpen

Jeg fandt også en som fortæller alt om disse ting på :
http://www.improve.dk/content/articles/item.aspx?ArticleID=29
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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