This commit is contained in:
Tyrrrz
2024-09-03 03:39:15 +03:00
parent cb8f4b122e
commit 0fc88a42ba
7 changed files with 9 additions and 34 deletions

View File

@@ -306,12 +306,12 @@ internal class HelpConsoleFormatter(ConsoleWriter consoleWriter, HelpContext con
if (defaultValue is null)
return;
if (schema.Property.Type.IsToStringOverriden())
if (defaultValue is IFormattable formattable)
{
Write(ConsoleColor.White, "Default: ");
Write('"');
Write(defaultValue.ToString(CultureInfo.InvariantCulture));
Write(formattable.ToString(null, CultureInfo.InvariantCulture));
Write('"');
Write('.');
}

View File

@@ -126,7 +126,7 @@ public abstract class CommandInputSchema(
public abstract class CommandInputSchema<
TCommand,
[DynamicallyAccessedMembers(
DynamicallyAccessedMemberTypes.Interfaces | DynamicallyAccessedMemberTypes.PublicMethods
DynamicallyAccessedMemberTypes.PublicMethods
)]
TProperty
>(

View File

@@ -64,7 +64,7 @@ public class CommandOptionSchema(
public class CommandOptionSchema<
TCommand,
[DynamicallyAccessedMembers(
DynamicallyAccessedMemberTypes.Interfaces | DynamicallyAccessedMemberTypes.PublicMethods
DynamicallyAccessedMemberTypes.PublicMethods
)]
TProperty
>(

View File

@@ -43,7 +43,7 @@ public class CommandParameterSchema(
public class CommandParameterSchema<
TCommand,
[DynamicallyAccessedMembers(
DynamicallyAccessedMemberTypes.Interfaces | DynamicallyAccessedMemberTypes.PublicMethods
DynamicallyAccessedMemberTypes.PublicMethods
)]
TProperty
>(

View File

@@ -10,7 +10,7 @@ namespace CliFx.Schema;
/// </summary>
public class PropertyBinding(
[DynamicallyAccessedMembers(
DynamicallyAccessedMemberTypes.Interfaces | DynamicallyAccessedMemberTypes.PublicMethods
DynamicallyAccessedMemberTypes.PublicMethods
)]
Type type,
Func<object, object?> getValue,
@@ -21,7 +21,7 @@ public class PropertyBinding(
/// Underlying CLR type of the property.
/// </summary>
[DynamicallyAccessedMembers(
DynamicallyAccessedMemberTypes.Interfaces | DynamicallyAccessedMemberTypes.PublicMethods
DynamicallyAccessedMemberTypes.PublicMethods
)]
public Type Type { get; } = type;
@@ -64,7 +64,7 @@ public class PropertyBinding(
public class PropertyBinding<
TObject,
[DynamicallyAccessedMembers(
DynamicallyAccessedMemberTypes.Interfaces | DynamicallyAccessedMemberTypes.PublicMethods
DynamicallyAccessedMemberTypes.PublicMethods
)]
TProperty
>(Func<TObject, TProperty?> getValue, Action<TObject, TProperty?> setValue)

View File

@@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
namespace CliFx.Utils.Extensions;
@@ -14,13 +13,4 @@ internal static class StringExtensions
public static string JoinToString<T>(this IEnumerable<T> source, string separator) =>
string.Join(separator, source);
public static string? ToString(
this object obj,
IFormatProvider? formatProvider = null,
string? format = null
) =>
obj is IFormattable formattable
? formattable.ToString(format, formatProvider)
: obj.ToString();
}

View File

@@ -1,15 +0,0 @@
using System;
using System.Diagnostics.CodeAnalysis;
namespace CliFx.Utils.Extensions;
internal static class TypeExtensions
{
public static bool IsToStringOverriden(
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] this Type type
)
{
var toStringMethod = type.GetMethod(nameof(ToString), []);
return toStringMethod?.GetBaseDefinition().DeclaringType != toStringMethod?.DeclaringType;
}
}