webForumDet fria alternativet

Include i ASP.Net (c#)

.NETur .NET

9 svar · 318 visningar · startad av Brimba

Medlem sedan dec. 19995 875 inlägg
Frågan#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!

Medlem 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.

Medlem sedan dec. 19995 875 inlägg
#3

Hur skulle jag skriva då?

Medlem 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

Medlem sedan dec. 200150 inlägg
#5

public class ClassName {}

alternativt

protected class ClassName() {}

Medlem 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 {
     }
}
Medlem sedan dec. 200150 inlägg
#7

Prova med public class ClassName() {}

Medlem 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();
Medlem 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
Medlem sedan dec. 19995 875 inlägg
#10

Fungerar klockrent.

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

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