webForumDet fria alternativet

Include i ASP.Net (c#)

9 svar · 318 visningar · startad av Brimba

BrimbaMedlem sedan dec. 19995 875 inlägg
#1

Gomiddag!

Jag vill inkludera en "global" fil med vanliga funktioner, klasser och subbar i mina sidor. Vad jag antar kallas Code Behind.

hur som helst så har jag försökt konvertera min .cs fil till en dll och lägga den i /bin/ katalogen i min mapp där hemsidan ligger:

exempelvis:

csc /t:library /out:bin\Brimba.dll brimba.cs

i min brimba.cs fil ser det ut såhär:

namespace Brimba {
class Brimpa {
}
}

jag försöker importera med:

<%@ import namespace="Brimba.Brimpa" %>

sedan anropa med

public void SendMail ( Object obj, EventArgs e ) {
Brimpa.Brimpa = new Brimpa();
}

Som ni säkert förstår så fungerar inte detta helt smärtfritt

Jag får felmeddelande:

CS0122: 'Brimba.Brimpa' is inaccessible due to its protection level

Någon som vet vad jag gör för fel?

Vad kan jag göra istället?

Hjälp!

aengmanMedlem sedan dec. 200150 inlägg
#2

Har inte gjort någon ingående analys av problemet.

Felmeddelandet tycker jag tyder på att Brimba.Brimba har fel "behörighet". För att den skall kunna utnyttjas av dess "arvingar" krävs det att den är (minst) protected.

BrimbaMedlem sedan dec. 19995 875 inlägg
#3

Hur skulle jag skriva då?

juventus1Medlem sedan dec. 2000399 inlägg
#4

Hej!

Om du inte deklarer vilket skydd en klass ska ha är standard private(samma som för variabler). Ex:

namespace Finagrejer
{
class finklass // = private class finklass
{
....
}
}

red: Blev nog lite otydligt men aengmans svar löser nog ditt problem

aengmanMedlem sedan dec. 200150 inlägg
#5

public class ClassName {}

alternativt

protected class ClassName() {}

BrimbaMedlem sedan dec. 19995 875 inlägg
#6

då fick jag:

Brimba.cs(7,2): error CS1527: Namespace elements cannot be explicitly declared as private or protected

namespace Brimba {
	protected class Brimpa {
     }
}
aengmanMedlem sedan dec. 200150 inlägg
#7

Prova med public class ClassName() {}

BrimbaMedlem sedan dec. 19995 875 inlägg
#8

Det fungerade bättre men nu får jag istället

CS0118: 'Brimba.Brimpa' denotes a 'class' where a 'variable' was expected

Brimba.Brimpa = new Brimpa();
juventus1Medlem sedan dec. 2000399 inlägg
#9

Ändra till:

//namespacet ska inte vara med när du skapar ett objekt
Brimpa b = new Brimpa(); //b blir ett objekt av typen Brimpa
BrimbaMedlem sedan dec. 19995 875 inlägg
#10

Fungerar klockrent.

Jag ber att få tacka för denna guidning!

128 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)