public string GenerateSyntax(TypeWrapper type) { var syntax = new SyntaxWriter(this._version); syntax.WriteAttributes(type); if (type.IsPublic) { syntax.WriteToken("public"); } if (type.IsEnum) { syntax.WriteToken("enum"); syntax.WriteTypeName(type); } else { if (type.IsSealed) { syntax.WriteToken("sealed"); } if (type.IsAbstract) { syntax.WriteToken("abstract"); } if (type.IsStatic) { syntax.WriteToken("static"); } if (type.IsClass) { syntax.WriteToken("class"); } else if (type.IsInterface) { syntax.WriteToken("interface"); } else if (type.IsValueType) { syntax.WriteToken("struct"); } syntax.WriteTypeName(type); var baseType = type.BaseType; if (baseType != null && !string.Equals(baseType.FullName, _objectTypeName, StringComparison.OrdinalIgnoreCase)) { syntax.WriteRaw(" :"); syntax.WriteTypeName(baseType); } var interfaces = type.GetInterfaces(); if (interfaces.Count > 0) { syntax.WriteNewLineWithTab(); syntax.BeginCommaDelimitedList(); foreach (var face in interfaces.OrderBy(x => x.Name)) { syntax.WriteTypeName(face); } syntax.EndCommaDelimitedList(); } } return(syntax.CurrentSyntax); }