ITypeConverter.cs 906 B

1234567891011121314151617181920212223242526
  1. using System.Diagnostics.CodeAnalysis;
  2. namespace Jint.Runtime.Interop;
  3. /// <summary>
  4. /// Handles conversions between CLR types.
  5. /// </summary>
  6. public interface ITypeConverter
  7. {
  8. /// <summary>
  9. /// Converts value to to type. Throws exception if cannot be done.
  10. /// </summary>
  11. object? Convert(
  12. object? value,
  13. [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicFields)] Type type,
  14. IFormatProvider formatProvider);
  15. /// <summary>
  16. /// Converts value to to type. Returns false if cannot be done.
  17. /// </summary>
  18. bool TryConvert(
  19. object? value,
  20. [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicFields)] Type type,
  21. IFormatProvider formatProvider,
  22. [NotNullWhen(true)] out object? converted);
  23. }