diff --git a/UIX/Microsoft/Iris/Markup/MarkupDataMapping.cs b/UIX/Microsoft/Iris/Markup/MarkupDataMapping.cs index 333bbb3..b065819 100644 --- a/UIX/Microsoft/Iris/Markup/MarkupDataMapping.cs +++ b/UIX/Microsoft/Iris/Markup/MarkupDataMapping.cs @@ -4,14 +4,7 @@ // MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11 // Assembly location: C:\Program Files\Zune\UIX.dll -#if OPENZUNE -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Formatting; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Microsoft.CodeAnalysis.Formatting; -using Microsoft.CodeAnalysis.Options; -#endif +using System.Text; namespace Microsoft.Iris.Markup { @@ -51,7 +44,6 @@ namespace Microsoft.Iris.Markup public override string ToString() => $"({_provider}, {_targetType})"; -#if OPENZUNE /// /// Generates C# code for a plain-old CLR object (POCO) that can /// be used to serialize and deserialize the data this mapping @@ -59,59 +51,31 @@ namespace Microsoft.Iris.Markup /// public string GenerateModelCode() { - CompilationUnitSyntax cu = SyntaxFactory.CompilationUnit() - .AddUsings - ( - SyntaxFactory.UsingDirective(SyntaxFactory.IdentifierName("System")) - ); + const string indent = " "; + const string newline = "\r\n"; - NamespaceDeclarationSyntax localNamespace = SyntaxFactory.NamespaceDeclaration( - SyntaxFactory.IdentifierName("Zune.Xml")); + string start = $@"namespace Zune.Xml;{newline}{newline}public class {TargetType.Name}{newline}{{{newline}"; + string end = $@"}}{newline}"; - ClassDeclarationSyntax modelClass = SyntaxFactory.ClassDeclaration(TargetType.Name) - .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword)); + var sb = new StringBuilder(start); - System.Collections.Generic.List members = new(Mappings.Length); foreach (var mapping in Mappings) { - var propertyType = SyntaxFactory.ParseTypeName(mapping.Property.PropertyType.Name); - var property = SyntaxFactory.PropertyDeclaration(propertyType, mapping.Property.Name) - .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword)); + string propertyType = mapping.Property.PropertyType.Name; + string properyDeclaration = $"{indent}public {propertyType} {mapping.Property.Name} {{ get; set; }}{newline}"; if (mapping.Source != null) { - string elementName = mapping.Source[1..]; - var elementNameAttr = SyntaxFactory.AttributeArgument( - SyntaxFactory.ParseExpression($"ElementName = {elementName}")); - - var attributes = SyntaxFactory.AttributeList().AddAttributes - ( - SyntaxFactory.Attribute(SyntaxFactory.IdentifierName("XmlElement"), - SyntaxFactory.AttributeArgumentList().AddArguments(elementNameAttr)) - ); - - property = property.AddAttributeLists(attributes); + string xmlElemAttribute = $"{indent}[XmlElement(\"{mapping.Source[1..]}\")]{newline}"; + properyDeclaration = xmlElemAttribute + properyDeclaration; } - members.Add(property); + sb.Append(properyDeclaration); } - modelClass = modelClass.AddMembers(members.ToArray()); - // Add to file root - localNamespace = localNamespace.AddMembers(modelClass); - cu = cu.AddMembers(localNamespace); - - // Format file - AdhocWorkspace cw = new(); - OptionSet options = cw.Options; - cw.Options.WithChangedOption(CSharpFormattingOptions.IndentBraces, true); - SyntaxNode formattedNode = Formatter.Format(cu, cw, options); + sb.Append(end); - // Write to string - using System.IO.StringWriter writer = new(); - formattedNode.WriteTo(writer); - return writer.ToString(); + return sb.ToString(); } -#endif } } diff --git a/UIX/UIX.csproj b/UIX/UIX.csproj index cf13f21..1bb5f20 100644 --- a/UIX/UIX.csproj +++ b/UIX/UIX.csproj @@ -44,8 +44,6 @@ - -