Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1840 | Besucher online: 133
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Reflektion und Generika


Autor: Günther Foidl
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 5145
  
Kick it on dotnet-kicks.de  

Beschreibung:

Mit diesem Beispiel will ich zeigen wie einfach mittels Reflektion eine generische Liste erstellt werden kann.

Reale Verwendung zB wenn bei LINQ to SQL gespeicherte Prozeduren über den Namen - also über Reflektion - ausgeführt werden um das Ergebnis in das ISingleResult zu wandeln.


Abgelegt unter: Generics, Reflektion, Generika, Reflection.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Collections.Generic;

namespace Reflection_and_Generics
{
	class Program
	{
		static void Main(string[] args)
		{
			// Basistyp ermitteln:
			Type baseType = typeof(List<>);

			// Typargumente erstellen:
			Type[] typeArgs = { typeof(string) };

			// Generischen Typ erstellen:
			Type genericType = baseType.MakeGenericType(typeArgs);

			// Objekt erstellen:
			object o = Activator.CreateInstance(genericType);

			List<string> list = o as List<string>;

			Console.WriteLine(list == null ? "Fehler" : "Erfolg");
			Console.ReadKey();
		}
	}
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

zoran schrieb am:  25.08.2009 09:46:52

Hallo Foidl,

danke für Beispiel aber ich bin anf'nger in C# comunity und ich verstehe nicht wie kann man eine Liste oder besser IList mit beliebige Typ Instanzirren? In dein Beispiel es geht um List<string> oder? Wie kann man eine IList<MyClass> Liste generieren ?

Danke!
ZM.
Günther Foidl schrieb am:  28.08.2009 09:00:55

Hallo,
siehe http://openbook.galileocomputing.de/visual_csharp/.
Im Beispiel gehts um die generische Variante einer Liste nämlich um List<string>. Da List<T> die Schnittstellte IList<T> implementiert wurde so eine Liste und mit dem gleichen Objekt eine IList<T> erzeugt. Solltest du das nicht verstehen dann sieh dir obigen Link an - da werden diese Grundlagen sehr gut erklärt.


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.