public static string ToDebugString( [NotNull] this IReadOnlyServiceProperty serviceProperty, MetadataDebugStringOptions options, int indent = 0) { var builder = new StringBuilder(); var indentString = new string(' ', indent); builder.Append(indentString); var singleLine = (options & MetadataDebugStringOptions.SingleLine) != 0; if (singleLine) { builder.Append("Service property: ").Append(serviceProperty.DeclaringType.DisplayName()).Append("."); } builder.Append(serviceProperty.Name); if (serviceProperty.GetFieldName() == null) { builder.Append(" (no field, "); } else { builder.Append(" (").Append(serviceProperty.GetFieldName()).Append(", "); } builder.Append(serviceProperty.ClrType?.ShortDisplayName()).Append(")"); if (!singleLine && (options & MetadataDebugStringOptions.IncludeAnnotations) != 0) { builder.Append(serviceProperty.AnnotationsToDebugString(indent + 2)); } return(builder.ToString()); }
public static ServiceProperty AsServiceProperty( [NotNull] this IReadOnlyServiceProperty serviceProperty, [NotNull][CallerMemberName] string methodName = "") => MetadataExtensions.AsConcreteMetadataType <IReadOnlyServiceProperty, ServiceProperty>(serviceProperty, methodName);