[ASP.NET] Abstract class probleem

Pagina: 1
Acties:

  • Jabbah
  • Registratie: Februari 2004
  • Laatst online: 21-05 11:01
Ik heb voor mijn aspx pagina's een abstract class geschreven waar alle pagina's van 'deriven'. Deze abstract class bevat een aantal methoden om gegevens van gebruikers (ip, dns etc..) te loggen. Op deze manier hoef ik in mijn derived classes alleen de methode LogVisit(); (zonder params) aan te roepen, en de code in de abstract class voert de logging uit.

Wanneer ik echter een derived pagina in de Visual Studio Designer open krijg ik een foutmelding (Deze)
Blijkbaar is dit 'by design'. :(

Nou kan ik wel een 'losse' class maken met de log methodes daarin, en dan alle gegevens die ik wil loggen als parameters doorgeven, maar dat is eigenlijk een workaround die ik niet wil.

Is er iemand die hier een nette oplossing voor weet?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Hum volgens mij had whoami laatst exact hetzelfde probleem... even zoeken.

[rml][ .NET/VS.NET] inheriten van abstract forms[/rml] dus :)

[ Voor 32% gewijzigd door curry684 op 13-07-2004 10:46 ]

Professionele website nodig?


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Ik heb hier deze week ook last van gehad, ik las in het topic van whoami dat hij het probleem ook had. Dus ben niet verder gaan zoeken naar een oplossing, want kreeg het idee dat hij al vrij lang heeft gezocht.

Ik heb gewoon een zooi virtual methods gemaakt met een body die leeg is. En zoals curry al aangaf gewoon een exception in de methods laten throw'en.

Niet netjes maar het werkt. Ik heb niet zoals whoami de constructor private gemaakt.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:27

gorgi_19

Kruimeltjes zijn weer op :9

Ik heb voor mijn aspx pagina's een abstract class geschreven waar alle pagina's van 'deriven'. Deze abstract class bevat een aantal methoden om gegevens van gebruikers (ip, dns etc..) te loggen. Op deze manier hoef ik in mijn derived classes alleen de methode LogVisit(); (zonder params) aan te roepen, en de code in de abstract class voert de logging uit.
Ik vraag me af of dit de juiste werkwijze is. Normaliter maak je hier een HttpModule voor, welke je 'koppelt' in je web.config

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Jabbah
  • Registratie: Februari 2004
  • Laatst online: 21-05 11:01
Bweh.. bekend probleem dus.

Ik heb o.a. deze methode in mijn baseclass:
code:
1
public abstract string GetPageName();

Deze zou ik om kunnen bouwen tot:

code:
1
2
3
4
5
public virtual string GetPageName()
{
    throw new Exception();  // Als methode niet is override in derived class
    return null;
}

En vervolgens in mijn derived classes deze methode te overriden.

Als ik het goed begrijp is het op deze manier dus niet mogelijk om een implementatie in de derived class af te dwingen (at run-time)?

@gorgi_19: Ik zal eens HttpModules checken.. nog nooit iets mee gedaan, maar in eerste instantie wil ik even mijn huidige benadering aanhouden.

[ Voor 17% gewijzigd door Jabbah op 13-07-2004 11:32 ]


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Jabbah schreef op 13 juli 2004 @ 11:25:
[..]

code:
1
2
3
4
5
public virtual string GetPageName()
{
    throw new Exception();  // Als methode niet is override in derived class
    return null;
}


[...]
C#:
1
return null;


Hoeft niet, want dat word toch niet gehaalt omdat je daar boven al de exception throwed :Y)

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 19:43

GrimaceODespair

eens een tettenman, altijd ...

questa schreef op 13 juli 2004 @ 11:35:
C#:
1
return null;


Hoeft niet, want dat word toch niet gehaalt omdat je daar boven al de exception throwed :Y)
Heb ik nu al met teveel verschillende IDE's/talen gewerkt, of krijg je hier normaal een waarschuwing op 'unreachable code' op?

Wij onderbreken deze thread voor reclame:
http://kalders.be


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:17
Dat levert idd unreachable code op. Vandaar dat questa ook zei dat die return null niet hoefde.
Het is trouwens beter om geen null te returnen in dit geval maar string.Empty.

https://fgheysels.github.io/

Pagina: 1