public string ConvertSymbol(ISymbol symbol)
{
var stringWriter = new StringWriter();
var astBuilder = new TypeSystemAstBuilder();
astBuilder.AlwaysUseShortTypeNames = true;
AstNode node = astBuilder.ConvertSymbol(symbol);
var writer = new TextWriterTokenWriter (stringWriter);
var rt = node.GetChildByRole (Roles.Type);
if (!rt.IsNull)
{
rt.AcceptVisitor (new CSharpOutputVisitor (stringWriter, FormattingOptionsFactory.CreateMono()));
}
IProperty property = symbol as IProperty;
if (property != null)
{
writer.Space ();
writer.WriteToken (Roles.LBrace, "{");
writer.Space ();
if (property.CanGet)
{
writer.WriteKeyword (PropertyDeclaration.GetKeywordRole, "get");
writer.WriteToken (Roles.Semicolon, ";");
writer.Space ();
}
if (property.CanSet)
{
writer.WriteKeyword (PropertyDeclaration.SetKeywordRole, "set");
writer.WriteToken (Roles.Semicolon, ";");
writer.Space ();
}
writer.WriteToken (Roles.RBrace, "}");
}
return stringWriter.ToString();
}