/// <summary> /// Constructor /// </summary> /// <param name="value">Value</param> /// <param name="formatSpecifiers">Format specifiers or null</param> /// <param name="flags">Flags</param> public DbgEvaluationResult(DbgValue value, ReadOnlyCollection <string> formatSpecifiers, DbgEvaluationResultFlags flags) { Value = value ?? throw new ArgumentNullException(nameof(value)); FormatSpecifiers = formatSpecifiers ?? emptyFormatSpecifiers; Flags = flags; Error = null; }
/// <summary> /// Formats the value's type. The thread is blocked until the type has been formatted /// </summary> /// <param name="context">Evaluation context</param> /// <param name="output">Output</param> /// <param name="value">Value to format</param> /// <param name="options">Options</param> /// <param name="cancellationToken">Cancellation token</param> public abstract void FormatType(DbgEvaluationContext context, ITextColorWriter output, DbgValue value, DbgValueFormatterTypeOptions options, CancellationToken cancellationToken = default);
/// <summary> /// Gets the .NET engine value /// </summary> /// <param name="value">Value</param> /// <returns></returns> public static DbgDotNetValue GetDotNetValue(this DbgValue value) => value.InternalValue as DbgDotNetValue;
/// <summary> /// Formats a value's type /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="output">Output</param> /// <param name="value">Value to format</param> /// <param name="options">Options</param> /// <param name="cultureInfo">Culture or null to use invariant culture</param> public abstract void FormatType(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgValue value, DbgValueFormatterTypeOptions options, CultureInfo?cultureInfo);
/// <summary> /// Creates an object id or returns null /// </summary> /// <param name="value">Value</param> /// <returns></returns> public DbgObjectId CreateObjectId(DbgValue value) => CreateObjectIds(new[] { value ?? throw new ArgumentNullException(nameof(value)) })[0];
/// <summary> /// Returns true if it's possible to create an object id /// </summary> /// <param name="value">Value</param> /// <returns></returns> public abstract bool CanCreateObjectId(DbgValue value);
/// <summary> /// Constructor /// </summary> /// <param name="value">Value</param> /// <param name="flags">Flags</param> public DbgEvaluationResult(DbgValue value, DbgEvaluationResultFlags flags) { Value = value ?? throw new ArgumentNullException(nameof(value)); Flags = flags; Error = null; }
/// <summary> /// Creates an object id or returns null /// </summary> /// <param name="value">Value</param> /// <param name="options">Options</param> /// <returns></returns> public DbgObjectId CreateObjectId(DbgValue value, CreateObjectIdOptions options = CreateObjectIdOptions.None) => CreateObjectIds(new[] { value ?? throw new ArgumentNullException(nameof(value)) }, options)[0];
/// <summary> /// Returns true if it's possible to create an object id /// </summary> /// <param name="value">Value</param> /// <param name="options">Options</param> /// <returns></returns> public abstract bool CanCreateObjectId(DbgValue value, CreateObjectIdOptions options = CreateObjectIdOptions.None);
/// <summary> /// Formats the value. The thread is blocked until the value has been formatted /// </summary> /// <param name="context">Evaluation context</param> /// <param name="frame">Stack frame</param> /// <param name="output">Output</param> /// <param name="value">Value to format</param> /// <param name="options">Options</param> /// <param name="cultureInfo">Culture or null to use invariant culture</param> /// <param name="cancellationToken">Cancellation token</param> public abstract void Format(DbgEvaluationContext context, DbgStackFrame frame, ITextColorWriter output, DbgValue value, DbgValueFormatterOptions options, CultureInfo cultureInfo, CancellationToken cancellationToken = default);
/// <summary> /// Formats a value /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="output">Output</param> /// <param name="value">Value to format</param> /// <param name="options">Options</param> /// <param name="cultureInfo">Culture or null to use invariant culture</param> public abstract void FormatValue(DbgEvaluationInfo evalInfo, ITextColorWriter output, DbgValue value, DbgValueFormatterOptions options, CultureInfo cultureInfo);