[ASP.net]Probleem met importen en references

Pagina: 1
Acties:

  • DSK
  • Registratie: Februari 2001
  • Laatst online: 17:38

DSK

boeiend...

Topicstarter
Situatie:
Solution met 3 projecten (volgens 3-tier model dus) :
Mediatheek.Data
Mediatheek.DataAcces
Mediatheek.Website

bij Mediatheek.Data heb ik een reference gelegd naar een *.dll waarin enkele dataklasses zitten
bij Mediatheek.DataAcces een reference naar *.dll met enkele dataAccesor klasses

deze DLL's zijn eerder gemaakt voor een VB.net programma (in 3 tier), daar werken ze perfect.

Nu heb ik bij Mediatheek.website nog 2 references gemaakt naar Medaitheek.Data en Mediatheek.DataAcces en deze geimport in een webform: frmStart.

alleen krijg ik nu geen toegang tot de klasses met bijhorende functies en subs van deze geimporteerde dll's. ik krijg in de object browser bij de references wel te zien welke functies die bevatten.

Om een voorbeeld te geven: de DataAcces.dll bevat een klasses genaamd clsGemeenteDA met daarin een functie GetGemeentes (deze geeft een lijst van gemeentes terug in een ArrayList, opgehaald uit een database).
Als ik nu in de frmStart volgende typ: dim arlTest as ArrayList = Mediatheek.DataAcces.clsGemeenteDA.getGemeentes()
krijg ik volgende fout: clsGemeenteDA is not a member of DataAcces.

Hopelijk is de situatie was begrijpbaar. Volgens mij is het maar een klein probleem of iets dat ik vergeet, maar ik kom er niet echt uit

/edit:
screenshot van de object browser en opbouw van de solution
Afbeeldingslocatie: http://Boeiend.be/tmp/zucht.JPG

[ Voor 5% gewijzigd door DSK op 28-12-2005 18:22 ]

Blog (Linux-related)


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:18
Die clsGemeenteDA class (wat 'n naam), is die public ?
Zit die clsGemeenteDA class ook in de Mediatheek.DataAccess namespace ?

https://fgheysels.github.io/


  • DSK
  • Registratie: Februari 2001
  • Laatst online: 17:38

DSK

boeiend...

Topicstarter
whoami schreef op woensdag 28 december 2005 @ 18:10:
Die clsGemeenteDA class (wat 'n naam), is die public ?
Zit die clsGemeenteDA class ook in de Mediatheek.DataAccess namespace ?
clsGemeenteDA class is public in de dll
zit niet in de namespace van Mediatheek.DataAcces, daarom net dat ik die reference heb gelegd

Blog (Linux-related)


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:18
Eh, je legt een reference naar een assembly (dll, ...).
Dat wil daarom nog niet zeggen, dat die class ook in de namespace zit die jij opgeeft.
Een assembly kan meerdere namespaces bevatten; wat jij hier opgeeft:
code:
1
Mediatheek.DataAcces.clsGemeenteDA.GetGemeentes()

is:
roep de GetGemeentes() method aan, die een static member method is van clsGemeenteDA (aangezien ik nergens zie dat je een object instantieert van clsGemeenteDA, ga ik er dus vanuit dat het eens static method is), en die class clsGemeenteDA bevindt zich in de namespace 'Mediatheek.DataAcess.

De code-file waarin die clsGemeenteDA class zich bevind, zou er dus ongeveer zo moeten uitzien:
code:
1
2
3
4
5
6
7
8
9
namespace Mediatheek.DataAcces
{
    class clsGemeenteDA
    {
         public static ArrayList getGemeentes()         
         {
         }
    }
}


Ik vind jouw naam-gevingen trouwens ook niet echt goed; check eens dit
niet in de namespace van Mediatheek.DataAcces
Waarom roep je 'm dan zo aan ?
code:
1
Mediatheek.DataAccess.clsGemeenteDA.GetGemeentes()

?

[ Voor 16% gewijzigd door whoami op 28-12-2005 18:28 ]

https://fgheysels.github.io/


  • DSK
  • Registratie: Februari 2001
  • Laatst online: 17:38

DSK

boeiend...

Topicstarter
maar hoe krijg ik hem daar? dat is net het hele probleem ;)
het is de bedoeling dat ik in mijn WT3.Mediatheek.Website in een WebForm gewoon kan typen Dim arlGemeentes as ArrayList = clsGemeenteDA.getGemeentes()

Wat moet ik dan precies importeren in die WebForm?
als ik daar ook een reference leg naar die DLL, dan zal het wel werken, maar dan is het geen 3tier meer.

naamgeving moet ik gebruiken door de opdrachtgever (Hogeschool) (heb ik zelf niet uitgevonden)

Blog (Linux-related)


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:18
Zolang GetGemeentes() geen static member is van clsGemeenteDA kan je dat nooit zo doen.

(Ik denk ook niet dat het aangeraden is om er 'n static van te maken)

Je zal dus zowiezo een instance van je object moeten instantieren;
code:
1
2
clsGemeenteDA bliep = new clsGemeenteDA();
ArrayList gem = bliep.GetGemeentes();


Ow, en als je C# gebruikt, moet je er ook ff rekening mee houden dat het boeltje case-sensitive is.
Dus getGemeentes() is niet hetzelfde als GetGemeentes(). maar ik zie dat je vb.net gebruikt
maar hoe krijg ik hem daar? dat is net het hele probleem ;)
het is de bedoeling dat ik in mijn WT3.Mediatheek.Website in een WebForm gewoon kan typen Dim arlGemeentes as ArrayList = clsGemeenteDA.getGemeentes()
Ik volg je even niet meer ? Je wilt geen reference leggen in je asp.net project naar Mediatheek.DataAccess omdat het dan geen 3-tier meer is ?
Waarom denk je dat het dan geen 3 - tier meer is ?
Als je geen reference legt naar die assembly, dan is het logisch dat je de classes die erin zitten niet kunt aanroepen.

[ Voor 40% gewijzigd door whoami op 28-12-2005 18:53 ]

https://fgheysels.github.io/


  • DSK
  • Registratie: Februari 2001
  • Laatst online: 17:38

DSK

boeiend...

Topicstarter
whoami schreef op woensdag 28 december 2005 @ 18:46:
Zolang GetGemeentes() geen static member is van clsGemeenteDA kan je dat nooit zo doen.

(Ik denk ook niet dat het aangeraden is om er 'n static van te maken)

Je zal dus zowiezo een instance van je object moeten instantieren;
code:
1
2
clsGemeenteDA bliep = new clsGemeenteDA();
ArrayList gem = bliep.GetGemeentes();


Ow, en als je C# gebruikt, moet je er ook ff rekening mee houden dat het boeltje case-sensitive is.
Dus getGemeentes() is niet hetzelfde als GetGemeentes(). maar ik zie dat je vb.net gebruikt


[...]

Ik volg je even niet meer ? Je wilt geen reference leggen in je asp.net project naar Mediatheek.DataAccess omdat het dan geen 3-tier meer is ?
Waarom denk je dat het dan geen 3 - tier meer is ?
die klasses zijn static, werkte ook in het VB.net programma. Dit werkt overigens zeer goed.

ik wil juist wel een reference leggen naar Mediatheek.DataAcces (de class library in mijn solution), maar niet rechstreeks naar de DLL (die van dat andere project komt)
Bedoeling is, dat ik die DLL importeer (of reference leg) in Mediatheek.DataAcces, dat ik vervolgs een reference leg naar Mediatheek.DataAcces in mijn Mediatheek.Website en in Mediatheek.Website de klasses uit de DLL kan gebruiken.

Blog (Linux-related)


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:18
Dat kan je niet; je zal een reference moeten leggen in je website project naar alle assemblies die je daarin wilt gebruiken.

https://fgheysels.github.io/

Pagina: 1