public static string GetCSharpDeclaration(this IDefinition definition, bool includeAttributes = false) { using (var stringWriter = new StringWriter()) { using (var syntaxWriter = new TextSyntaxWriter(stringWriter)) { var writer = new CSDeclarationWriter(syntaxWriter, new AttributesFilter(includeAttributes), false, true); var nsp = definition as INamespaceDefinition; var typeDefinition = definition as ITypeDefinition; var member = definition as ITypeDefinitionMember; if (nsp != null) writer.WriteNamespaceDeclaration(nsp); else if (typeDefinition != null) writer.WriteTypeDeclaration(typeDefinition); else if (member != null) { var method = member as IMethodDefinition; if (method != null && method.IsPropertyOrEventAccessor()) WriteAccessor(syntaxWriter, method); else writer.WriteMemberDeclaration(member); } } return stringWriter.ToString(); } }
private void EnsureStringWriter() { if (_stringWriter == null) { _string = new StringBuilder(); StringWriter sw = new StringWriter(_string); TextSyntaxWriter tsw = new TextSyntaxWriter(sw); _stringWriter = new CSDeclarationWriter(tsw, _filter, _forCompilation, _includeFakeAttributes); } }