public void Write(TextWriter writer, Type type) { WriteTypeKind(writer, type); writer.Write(" \""); _typeNameWriter.Write(writer, type); writer.Write("\" as "); _escapedTypeNameWriter.Write(writer, type); writer.WriteLine(" {"); WriteMembers( writer, () => _queryType.GetFields(type), i => _fieldWriter.Write(writer, i)); WriteMembers( writer, () => _queryType.GetProperties(type), i => _propertyWriter.Write(writer, i)); WriteMembers( writer, () => _queryType.GetMethods(type), i => _methodWriter.Write(writer, i)); WriteMembers( writer, () => _queryType.GetEvents(type), i => _eventWriter.Write(writer, i)); writer.WriteLine("}"); }
public void Write(TextWriter writer, Type type, IQueryType queryType) { WriteTypeKind(writer, type); writer.Write(' '); _typeNameWriter.Write(writer, type); if (type.BaseType != null) { writer.Write(" : "); _typeNameWriter.Write(writer, type.BaseType); } var implementedInterfaces = queryType.GetInterfaces(type).ToArray(); if (implementedInterfaces.Length > 0) { writer.Write(" implements "); writer.Write(string.Join(',', implementedInterfaces.Select(_typeNameConverter.ToString))); } writer.WriteLine(" {"); WriteMembers("Fields", writer, () => queryType.GetFields(type), i => _fieldWriter.Write(writer, i)); WriteMembers("Properties", writer, () => queryType.GetProperties(type), i => _propertyWriter.Write(writer, i)); WriteMembers("Methods", writer, () => queryType.GetMethods(type), i => _methodWriter.Write(writer, i)); WriteMembers("Events", writer, () => queryType.GetEvents(type), i => _eventWriter.Write(writer, i)); writer.WriteLine("}"); }
public void Write(TextWriter writer, EventInfo eventInfo) { var builder = new StringBuilder(); if (eventInfo.EventHandlerType != null) { _typeNameWriter.Write(writer, eventInfo.EventHandlerType); writer.Write(' '); } writer.Write(eventInfo.Name); }
public void Write(TextWriter writer, PropertyInfo propertyInfo) { bool hasGetter = propertyInfo.GetMethod?.IsPublic ?? false; bool hasSetter = propertyInfo.SetMethod?.IsPublic ?? false; _typeNameWriter.Write(writer, propertyInfo.PropertyType); writer.Write(' '); writer.Write(propertyInfo.Name); if (hasGetter && hasSetter) { writer.Write(" { get; set; }"); } else if (hasGetter) { writer.Write(" { get; }"); } else if (hasSetter) { writer.Write(" { set; }"); } }
public void Write(TextWriter writer, MethodInfo methodInfo) { var pars = methodInfo.GetParameters(); var parsString = string.Join(',', pars.Select(p => $"{p.Name}: {_typeNameConverter.ToString(p.ParameterType)}")); var builder = new StringBuilder(); _typeNameWriter.Write(writer, methodInfo.ReturnType); writer.Write(' '); writer.Write(methodInfo.Name); if (methodInfo.IsGenericMethod) { var genericParams = string.Join(',', methodInfo.GetGenericArguments().Select(_typeNameConverter.ToString)); writer.Write('<'); writer.Write(genericParams); writer.Write('>'); } writer.Write('('); writer.Write(parsString); writer.Write(')'); }
public void Write(TextWriter writer, FieldInfo fieldInfo) { _typeNameWriter.Write(writer, fieldInfo.FieldType); writer.Write(' '); writer.Write(fieldInfo.Name); }