Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Anropa klass sas dynamiskt (c sharp)

Postades av 2004-05-26 22:11:00 - Anders Larsson, i forum asp.net generellt, Tråden har 2 Kommentarer och lästs av 700 personer

Hej

I C# anropar jag en klass på detta sättet:

dynBox1 boxen1 = new dynBox1();
boxen1.Headline = "Fina grejor";
boxen1.HSize = "1";
boxen1.Message = "Detta är mitt fina meddelande";
boxen1.Url = "/hejsan/hoppsan/";
boxen1.UrlText = "Läs mer här";
PlaceHolder2.Controls.Add(boxen1);

Det fungerar finfint, men ibland vill jag fylla på med data från en databas istället. Min lösning, som inte fungerade, var såhär:

dynBox1 boxen1 = new dynBox1();
while (oReader.Read())
{
boxen1.oReader.GetString(0); = oReader.GetString(1);
}

Självklart går inte detta eftersom boxen1 inte har någon oReader! Men visst borde det gå att göra såhär på något vis. Nyckeln som jag vill komma åt ligger ju i readern. Jag vill inte göra databasanropet innefrån klassen.

Data från databasen ser ut såhär:

NAMN (NYCKEL) / VÄRDE
Headline Fina grejor
HSize 1
Message Detta är mitt fina meddelande
Url /hejsan/hoppsan/
UrlText Läs mer om det här


Tjo och tjing, tack för att hjälp.

/anders


Svara

Sv: Anropa klass sas dynamiskt (c sharp)

Postades av 2004-05-26 22:26:43 - Andreas Håkansson

Anders,

Vad du är ute efter är självaste hjärtat i .NET programmering, nämligen <b>Reflection</b> API:t som du hittar i <b>System.Reflection</b>. Följande exempel är från ett <b>WinForm</b> projekt där en <b>Button</b> (button1) och en <b>TextBox</b> (textBox1) har placerats på en <b>form</b>.

private void button1_Click(object sender, System.EventArgs e)
{
	Hashtable keyValues =
		new Hashtable();
	keyValues.Add("Enabled", true);
	keyValues.Add("Text", "En liten text");
	keyValues.Add("TabIndex", 2);

	foreach(string key in keyValues.Keys)
	{
		PropertyInfo property =
			textBox1.GetType().GetProperty((string)key);
		property.SetValue(textBox1, keyValues[key], null);
	}
}


För att visa hur det fungerar så skapar vi ett <b>HashTable</b> som innehåller namnet på det <b>property</b> som vi vill ändra (detta blir nyckeln) samt det <b>värde</b> som det skall tilldelas. Vad som sen görs är att den loopar igenom alla nycklar, hämtar ut respektivt property med <b>GetProperty</b> metoden och sen sätter det önskade värdet med <b>SetValue</b> metoden.

<b>Obs!</b> Tänk på att det inte finns någon som helst kod för felhantering här, dvs. den hanterar t.ex inte om du försöker hämta ett property som inte finns etc. Det är något som kan vara värt att bygga in om du gör en allmän metod.

Som du ser måste man ange (på två ställen) vilken objekt det handlar om (textBox1) detta kan du skicka med in som en parameter till en metod så du kan återanvända metoden för andra objekt.

Hoppas detta var till hjälp!

//Andreas


Svara

Sv: Anropa klass sas dynamiskt (c sharp)

Postades av 2004-05-26 22:50:13 - Anders Larsson

Tack Andreas,
precis vad jag var ute efter!


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 166
27 952
271 704
1 799
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies