Feedback

C# - Generic Type Creator

Veröffentlicht von am 07.02.2008
(2 Bewertungen)
Angenommen es wird zu weiteren Verarbeitung ein Dictionary vom Typ Dictionary<Guid, T> benötigt. Damit der Aufruf allerdings komfortabler ist soll es die möglichkeit geben die Daten in Form einer IList<T> an die Methode zu übergeben, dann kann folgendes Snippet helfen
GFU-Schulungen  [Anzeige]

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

// aufruf
        public void testRun()
        {
            IList<int> var = new List<int>();
            TestMethod(var);
        }
        public void TestMethod(object var)
        {
            if (var.GetType().IsGenericType)
            {
                Type[] t = var.GetType().GetGenericArguments();
                Type typeToGenerate = typeof(Dictionary<,>);
                Type[] tParameters = new Type[] { typeof(Guid), t[0] };
                Type newType = typeToGenerate.MakeGenericType(tParameters);
                object obj = Activator.CreateInstance(newType);
            }
            else
            {
                throw new InvalidCastException("Wrong type");
            }
            // do something with the new Dictionary...
        }
Abgelegt unter Generics, Reflection.

3 Kommentare zum Snippet

Rainer Schuster schrieb am 07.02.2008:
Ein object als Parameter in einem Generic ist meiner Meinung nach Themaverfehlung ...
spooky schrieb am 08.02.2008:
IList<int> kann man schonmal nicht nach IList<object> casten, von daher geht der Aufruf aus testRun() nicht --> TestMethod(object var) muss es heissen.


public static void Test<T>(IList<T> list)
{
Dictionary<Guid, T> dict = new Dictionary<Guid, T>();
}
Thorsten Hans schrieb am 08.02.2008:
Hallo,
sorry stimmt leute ich korrigiere das Ganze mal zunächst so dass es passt.
 

Logge dich ein, um hier zu kommentieren!