Ich habe den folgenden Code zu erzeugen, eine Eigenschaft erstellen:Wie struct basierte Eigenschaften mit Roslyn
Arten:
types = new Dictionary<string, SpecialType>();
types.Add("Guid", SpecialType.System_Object);
types.Add("DateTime", SpecialType.System_DateTime);
types.Add("String", SpecialType.System_String);
types.Add("Int32", SpecialType.System_Int32);
types.Add("Boolean", SpecialType.System_Boolean);
generator.PropertyDeclaration(name, generator.TypeExpression(types["DateTime"]), Accessibility.Public);
Allerdings habe ich immer eine Ausnahme erhalten, wenn der Name einer Strukturtyp ist die Parameter (zB Datetime oder Guid - für Guid, ich kann nicht einmal eine richtige besondere Art finden):
nicht unterstützt S pecialType
at: Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator.TypeExpression(SpecialType specialType)
at: MyProject.CreateProperty(String name, String type)
Was soll ich verwenden?
Nach [dieser] (http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis/SpecialType.cs5b11a29d644330dc), gibt es nichts für 'Guid'. Ihre DateTime sieht jedoch gut aus – lokusking
@lokusking Haben Sie einen Hinweis, warum sie einen *** sehr grundlegenden und gemeinsamen *** Datentyp wie 'Guid' ausgelassen haben? – Nestor
@Nestor "Basic und Common" ist nicht das Gleiche wie "Special". Der Compiler betrachtet einen speziellen Typ nur dann, wenn es notwendig ist, da es Situationen gibt, in denen er diesen Typ auf besondere Weise behandeln muss. – svick