public static void AsTextPropertyInfo(CodeWriter writer, PropertyInfo propertyInfo, RenderFlags flags) { RenderFlags passFlags = flags & ~RenderFlags.Description; if (!flags.HasFlag(RenderFlags.NoPreAnnotations)) { Attribute.AsTextAttributes(writer, propertyInfo); } writer.Write(ModifiersHelpers.AsString(GetPropertyModifiers(propertyInfo))); Type propertyType = propertyInfo.PropertyType; TypeRefBase.AsTextType(writer, propertyType, passFlags); writer.Write(" "); TypeRefBase.AsTextType(writer, propertyInfo.DeclaringType, passFlags); Dot.AsTextDot(writer); if (PropertyInfoUtil.IsIndexed(propertyInfo)) { // Display the actual name instead of 'this' - it will usually be 'Item', but not always, // plus it might have a prefix (if it's an explicit interface implementation). writer.Write(propertyInfo.Name + IndexerDecl.ParseTokenStart); MethodRef.AsTextParameters(writer, propertyInfo.GetIndexParameters(), flags); writer.Write(IndexerDecl.ParseTokenEnd); } else { writer.Write(propertyInfo.Name); } }