Korte probleem omschrijving: hoe zorg ik dat een parameter doorgegeven aan een methode altijd de laatste waarde bevat (dwz hoe zorg ik dat ik de referentie doorgeef en niet de waarde)?
Een stukje code:
Het concrete probleem: De code speelt zich af in een webapplicatie: bovenstaande methode Save wordt aangeroepen door mijn GUI. De methode verzamelt informatie om een nieuwe Failure te maken (gewoon een domein object, verder niks bijzonders). Daarna wordt aangegeven waar de pagina naar moet redirecten en er worden enkele parameters doorgegeven om een url te bouwen(het Id van de nieuwe failure). Intern worden dan eerst alle nieuwe domein objecten opgeslagen (commit) in de database en daarna geredirect. Nu het probleem (eindelijk
): op moment van aanroepen van AddParameter heeft Failure.Id nog een tijdelijke waarde (-1), maar de redirect heeft de waarde nodig van na de commit. Hoe zorg ik er voor dat mijn Redirect object altijd de laatste (juiste) waarde heeft?
Waar ik tot nu toe aan gedacht heb:
- op een of andere manier Failure.Id als reference meegeven zodat ie altijd de juiste waarde heeft, maar dit lukt me niet in C# (ref/out is iig niet de goede oplossing).
- eerst committen en daarna pas het Redirect object aanmaken. Dit werkt natuurlijk prima, maar dan moet de programmeur zelf bedenken wanneer hij gaat committen en dat heb ik liever niet.
Mijn vraag is dus: is het mogelijk referenties naar properties van objecten mee te geven aan een methode?
Ter extra informatie, dit staat in de documentatie:
Een stukje code:
C#:
1
2
3
4
5
6
7
8
9
10
11
| private void Save() { Failure failure = new Failure( ProjectCollection.FetchById(464), DepartmentCollection.FetchById(Input.ToInt("place", true)), Input.ToString("omschrijving", true) ); Redirect = new Redirect("edit", "failure"); Redirect.AddParameter("id", failure.Id); } |
Het concrete probleem: De code speelt zich af in een webapplicatie: bovenstaande methode Save wordt aangeroepen door mijn GUI. De methode verzamelt informatie om een nieuwe Failure te maken (gewoon een domein object, verder niks bijzonders). Daarna wordt aangegeven waar de pagina naar moet redirecten en er worden enkele parameters doorgegeven om een url te bouwen(het Id van de nieuwe failure). Intern worden dan eerst alle nieuwe domein objecten opgeslagen (commit) in de database en daarna geredirect. Nu het probleem (eindelijk
Waar ik tot nu toe aan gedacht heb:
- op een of andere manier Failure.Id als reference meegeven zodat ie altijd de juiste waarde heeft, maar dit lukt me niet in C# (ref/out is iig niet de goede oplossing).
- eerst committen en daarna pas het Redirect object aanmaken. Dit werkt natuurlijk prima, maar dan moet de programmeur zelf bedenken wanneer hij gaat committen en dat heb ik liever niet.
Mijn vraag is dus: is het mogelijk referenties naar properties van objecten mee te geven aan een methode?
Ter extra informatie, dit staat in de documentatie:
A property is not a variable and cannot be passed as a ref/out parameter.
[ Voor 6% gewijzigd door zoepercavia op 11-06-2003 15:03 ]
Panacea.NL als je geinteresserd bent in IT en Geneeskunde!