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 @@
-
-