Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Utilizzare una classe

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514

    Utilizzare una classe

    Scusate ragazzi ma non mi è chiara una cosa.

    Sono partito da una cosa semplice, una pagina .aspx che chiama una funzione in un'altra pagina .vb

    Pagina.aspx

    <%@ Page language="vb" Inherits="carica_xml" src="carica.vb" %>

    <script runat="server">

    Sub Page_Load()

    Carica_Xml()

    End Sub

    </script>

    Pagina carica.vb

    Import system.xml

    Public Class carica_xml
    Inherits System.Web.UI.Page

    Public file_xml as new xmldocument

    public function Carica_xml()
    file_xml.Load(miofile.xml)
    end function


    End Class


    ...................ho sintetizzato un pò ma il principio è questo, cosi funziona e mi carica il file xml.
    Ora se io voglio metterla in una dll come è possibile ?
    Ho inserito il namespace, compilato il tutto, e richiamato dalla pagina, però non posso più richiamare la funzione carica_xml()

    Il riferimento a un membro non condiviso richiede un riferimento a un oggetto.

    Si possono utilizzare le funzioni in una libreria dll ? se si come si richiamano ?

    Se avete anche un link dove guardare, prendere spunto!

  2. #2
    Non chiamare una funzione interna ad una classe con lo stesso nome della classe.
    Poi, prima di chiamare una funzione come ad esempio
    codice:
    Public Class TuaClasse 
    Public Function NomeFunzione as ....
    devi istanziare un oggetto basato sulla classe che la contiene
    es.
    codice:
    dim obj as new TuaClasse 
    obj.NomeFunzione...
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Originariamente inviato da riccardone
    Non chiamare una funzione interna ad una classe con lo stesso nome della classe.

    E' stato un caso qui nel forum, nel mio file è diverso ma non và.

    Dici che si dovrebbe fare cosi:

    codice:
    Import System.Xml
    NameSpace Caricamento_Xml
    
    Public Class Apri_Xml
    
    Dim Carica_Xml As New Apri_Xml
    
    Carica_Xml.AperturaFIle()  
    
    End Class
    
    End NameSpace

    :master:

  4. #4
    no... se hai una classe come ad esempio
    codice:
    Public Class Class1
        Public Function CaricaXml(ByVal _file As String) As System.Xml.XmlDocument
            Dim m_doc As New System.Xml.XmlDocument
            ' codice per restituire un oggetto xmldocument
            Return m_doc
        End Function
    End Class
    da fuori per utilizzarla devi prima istanziarne un oggetto
    codice:
    dim obj as new Class1
    e poi puoi usare le sue funzioni
    codice:
    obj.CaricaXml("ciccio.xml")
    Saluti a tutti
    Riccardo

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Ma non posso caricarlo direttamente nella classe ?

    codice:
    Public Class Class1
        Public Function CaricaXml(ByVal _file As String) As System.Xml.XmlDocument
            Dim m_doc As New System.Xml.XmlDocument
            m_doc.Load(File_Xml.Xml) 
            Return m_doc
        End Function
    End Class
    e poi

    Dim obj as new class1
    obj.appendchild(nuovi_nodi)

    praticamente devo caricare sempre lo stesso file xml in tutte le pagine, prima in asp facevo una variabile pubblica e la riutilizzavo in tutti i documenti, come prima nella funzione .vb vorrei fare lo steso con la classe per richiamarla in tutti i documenti.

  6. #6
    ...prima in asp facevo una variabile pubblica e la riutilizzavo in tutti i documenti, come prima nella funzione .vb vorrei fare lo steso con la classe per richiamarla in tutti i documenti.
    Non so quello che vuoi fare, ho solo cercato di correggere il tuo codice e visto che la tua classe non presentava metodi shared (condivisi) ti ho indicato come sia necessario in questo caso istanziare prima un oggetto basato sulla classe e dopo usare le funzioni e i metodi pubblici che offre.
    Se vuoi, puoi anche creare una classe che espone dei membri (funzioni e/o metodi) shared (static in c#). In questo caso, puoi richiamarli direttamente con nomeclasse.nomemetodo senza bisogno di istanziarne l'oggetto.
    Saluti a tutti
    Riccardo

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Originariamente inviato da riccardone
    Se vuoi, puoi anche creare una classe che espone dei membri (funzioni e/o metodi) shared (static in c#). In questo caso, puoi richiamarli direttamente con nomeclasse.nomemetodo senza bisogno di istanziarne l'oggetto.

    Non avresti un link !

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Allora, forse ho capito, ricapitoliamo.

    Ho fatto il
    NameSpace Funzioni_Xml
    e la classe
    Public Class Apri_Xml

    End Class


    Poi nel file .aspx

    <%@ import NameSpace="Funzioni_Xml.Apri_Xml" %>

    e fin qua non mi dà errori, però poi come hai detto tu:

    Dim Oggetto As New Apri_Xml

    e mi dà errore

    Tipo 'Apri_Xml' non definito.

    :master:

  9. #9
    Originariamente inviato da Lollys
    Non avresti un link !
    http://msdn.microsoft.com
    http://search.microsoft.com/search/r...&c=0&s=1&swc=0

    tornando all'esempio di prima
    codice:
    Public Class Class1
        Public Shared Function CaricaXml(ByVal _file As String) As System.Xml.XmlDocument
            Dim m_doc As New System.Xml.XmlDocument
            ' codice per restituire un oggetto xmldocument
            Return m_doc
        End Function
    End Class
    e poi per richiamare da fuori la funzione
    codice:
    Class1.CaricaXml...
    Saluti a tutti
    Riccardo

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Niente non ci riesco, nessuno sà se è possibile tramite una classe compilata generare una variabile pubblica come oggetto documento e poi utilizzarla nel documento stesso con system.xml

    Io per ora ho fatto cosi:

    Il file dll

    Imports System.Web
    Imports System.Xml

    NameSpace Documento_Xml

    Public Class Apertura_Xml

    Public File_Xml As New XmlDocument

    Public Function Carica()
    File_Xml.Load(Miofile.xml)
    Return File_Xml
    End Function


    End Class

    End NameSpace


    ------------------------ nel file aspx

    <%@ Impor NameSpac="Documento_Xml.Apertura_Xml" %>

    Dim Oggetto As New Apertura_Xml

    Apertura_Xml.Carica()


    ----------------------------------

    Ho capito che con delle funzionni posso manipolare la variabile pubblica File_Xml dall pagina aspx, però non riesco ad importare quel File_Xml nel mio documento aspx per utilizzarlo con System.Xml.

    :master: VVoVe:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.