KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to generate a few properties with [DataContractAttribute] using Roslyn CTP Syntax. Unfortunately, Roslyn puts the attribute on the same line as the property. Here is what I get: [DataContract]public int Id { get; set; } [DataContract]public int? Age { get; set; } What I would like to achieve: [DataContract] public int Id { get; set; } [DataContract] public int? Age { get; set; } Generator's code: string propertyType = GetPropertyType(); string propertyName = GetPropertyName(); var property = Syntax .PropertyDeclaration(Syntax.ParseTypeName(propertyType), propertyName) .WithModifiers(Syntax.TokenList(Syntax.Token(SyntaxKind.PublicKeyword))) .WithAttributeLists( Syntax.AttributeList( Syntax.SeparatedList<AttributeSyntax>( Syntax.Attribute(Syntax.ParseName("DataContract"))))) .WithAccessorList( Syntax.AccessorList( Syntax.List( Syntax.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration) .WithSemicolonToken(Syntax.Token(SyntaxKind.SemicolonToken)), Syntax.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration) .WithSemicolonToken(Syntax.Token(SyntaxKind.SemicolonToken)) ))); After wrapping those properties in a class, a namespace and finally CompilationUnit, I am using the following code to get the string result: var compUnit = Syntax.CompilationUnit().WithMembers(...); IFormattingResult fResult = compUnit.Format(new FormattingOptions(false, 4, 4)); string result = fResult.GetFormattedRoot().GetText().ToString();
Tags (comma-separated)
Save Edits
Cancel