Ik ben bezig met het genereren van C# -code op basis van mijn database-schema met behulp van MyGeneration. Nu biedt MyGeneration functionaliteit om me te vertellen welk C#-type mapt op een databasetype van een bepaalde kolom: als ik bijv. van een nvarchar-kolom het C#-type opvraag krijg ik netjes "string" terug, en voor een bit-kolom krijg ik "bool" terug.
Allemaal heel handig, maar het vervelende is dat ik de naam van het .NET-type terug krijg als string (en niet als een Type object). Omdat ik dit Type-object wel nodig heb, wil ik voor een string met een C# typenaam het bijbehorende Type-object opvragen.
De meest voor de hand liggende oplossing is dan om Type.GetType() te gebruiken, echter:
Ergens ook wel logisch, omdat "bool" een C#-specifieke naam is voor het 'echte' type System.Boolean. Nu wil ik dus deze C# -specifieke typenamen kunnen mappen naar hun echte typenamen, maar ik kan in het .NET framework hier geen voorziening voor vinden? Met name de "Microsoft.CSharp" namespace leek veelbelovend, maar hier lijken alleen maar compiler-achtige classes in te staan, waar ik volgens mij niet zoveel mee kan.
In het ergste geval zou ik zelf een lookup-table kunnen definieren, maar ik vraag me af of iemand niet toch toevallig van het bestaan weet van een framework-functie die strings als "bool" kan mappen naar hun 'echte' typenamen?
Allemaal heel handig, maar het vervelende is dat ik de naam van het .NET-type terug krijg als string (en niet als een Type object). Omdat ik dit Type-object wel nodig heb, wil ik voor een string met een C# typenaam het bijbehorende Type-object opvragen.
De meest voor de hand liggende oplossing is dan om Type.GetType() te gebruiken, echter:
C#:
1
2
| Type t1 = Type.GetType("bool"); //Werkt niet (geeft null terug) Type t2 = Type.GetType("System.Boolean"); //Werkt wel |
Ergens ook wel logisch, omdat "bool" een C#-specifieke naam is voor het 'echte' type System.Boolean. Nu wil ik dus deze C# -specifieke typenamen kunnen mappen naar hun echte typenamen, maar ik kan in het .NET framework hier geen voorziening voor vinden? Met name de "Microsoft.CSharp" namespace leek veelbelovend, maar hier lijken alleen maar compiler-achtige classes in te staan, waar ik volgens mij niet zoveel mee kan.
In het ergste geval zou ik zelf een lookup-table kunnen definieren, maar ik vraag me af of iemand niet toch toevallig van het bestaan weet van een framework-functie die strings als "bool" kan mappen naar hun 'echte' typenamen?