Nu har jag kört fast igen! Den kommer ifrån att jag inne i koden skapar ett object av typen t Då kan du recursivt återanvända T istället: Japps. Kanske skev lite illa. Om jag loopar genom result:s properties genom t.GetProperties() och säg att en är av typen "User" då vill jag anropa funktionen rektursivt med "User" istället för T. Skapa en generisk type i runtime
Har en funktion som ser ut så här:
Kod:
<code>
public T Hej<T>(...)
...kod...
Type tmp = //typ av ett objekt jag skapat.
object o = Hej<???>(...); här vill jag göra ett rekursivt anrop med typen tmp.
</code>
Jag vill alltså göra Hej<tmp>. Men det fungerar ju inte. Kan man på något sätt konvertera en vanlig Type till en generisk "type T". ?Sv:Skapa en generisk type i runtime
<code>
T result = Activator.CreateInstance<T>();
</code>
Sen loopar jag genom dess properties och från den typ de är, därifrån kommer tmp.Sv: Skapa en generisk type i runtime
public T Create<T>() {
Create<T>();
}
Sv:Skapa en generisk type i runtime
<code>
private static T Hej()
{
T result = Activator.CreateInstance<T>();
PropertyInfo info = t.GetProperty("ettnamn");
Type t = info.PropertyType;
if(ngt villkor så den körs ibland) {
info.SetValue(result, Hej<"t?">(), null);
}
return result;
}
</code>