Avatar billede suppenudel Nybegynder
20. juni 2006 - 10:50 Der er 6 kommentarer og
1 løsning

Importere namespace i metode

Er det muligt først at importere et namespace nå man skal bruge det, så det kun bruges lige den metode man har brug for det?

Prøver lige den der iTextSharp, men når man har lavet en Import på den konflikter den med system.web.ui.webcontrols så som ListItem og Image. Dvs. så skal jeg sætte

Dim img as system.web.ui.webcontrols.image
og
Dim listeting as system.web.ui.webcontrols.listitem

og omvendt hver gang jeg skal anvende dem i samme klasse..
Avatar billede thrytter Nybegynder
20. juni 2006 - 14:40 #1
Når du opretter et nyt web project vil

  System.Web.UI.HtmlControls
  System.Web.UI.WebControls
  System.Drawing
  mv

blive importeret globalt, dvs. du behøver ikke at skrive hele System.xxx.yyy for at fange klasserne i de pågældende namespaces.

Vil du undgå sammenfald med andre namespaces kan du fjerne de globale imports, men skal så lave en imports på de enkelte sider eller bruge det fulde namespace når du vil oprette en instans af klassen (eller anden reference til klassen)

De globale imports kan (i Visual Studio) ses under projetetegenskaber: Common Properties -> Imports
Avatar billede suppenudel Nybegynder
20. juni 2006 - 23:52 #2
Ok, men det er fordi jeg på en side skal bruge instanser af både listitem (webcontrols-namespacet) og instanser fra image (der tilhører iText.Sharp.Text-namespacet)

Hvis jeg laver en import i toppen af siden:

Imports System.Web.UI.WebControls
Imports ItextSharp.Text

Kommer der fejl ved de steder hvor jeg danner instanser af Image og ListItem
fordi klasserne findes i begge namespaces. Fejlen siger noget med at de to er ambigious.

Så den eneste måde jeg kan fastslå hvilket namespace jeg ønsker at anvende i den pågældende situation for eks. Image eller ListItem er ved at declare dem Webcontrols.Image, WebControls.ListItem, eller ITextSharp.Text.Image, ITextSharp.Text.ListItem ..

Eller kan jeg i den givne Sub/metode importere det namespace jeg ønsker at bruge, eller er det måske bedst at dele klassen op i to, så de er adskilt?
Avatar billede thrytter Nybegynder
21. juni 2006 - 01:09 #3
Du kan ikke lave en imports af namespace i en sub/metode da dette skal ske udenfor deklarationen af klassen (overnfor Public Class minklasse)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmimports.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcn7/html/vaconNamespaces.asp

Som nævnt i linket kan du give det importerede namespace et alias, eks:

Imports SW = System.Web.UI.WebControls
Imports IT = ItextSharp.Text

og som der senere kan refereres til ved

SW.Image
IT.Image

Syntes måske det er voldsomt nok med opdeling af din klasse.
Avatar billede arne_v Ekspert
21. juni 2006 - 01:28 #4
Af uransagelige årsager har man i C# valgt ikke at kunne importere dele af
et namespace.
Avatar billede suppenudel Nybegynder
22. juni 2006 - 11:54 #5
Jep okay, det det var en løsning som den á la den med at give dem et alias jeg var på udkig efter, altså så man slipper for at skulle declarere det fulde namespace foran, hver gang man skal bruge en klasse, af halvt dovenskabs- og halvt overskuelighedsmæssige årsager :-)
Avatar billede suppenudel Nybegynder
06. juli 2006 - 12:31 #6
Må gerne lægge svar :-)
Avatar billede thrytter Nybegynder
06. juli 2006 - 16:00 #7
svar
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