From 3717871cad9b28ab639194605a07f70175712061 Mon Sep 17 00:00:00 2001
From: Steve Dunn
Date: Mon, 9 Sep 2024 14:37:54 +0100
Subject: [PATCH] Fix build
---
README.md | 9 +-
.../Writerside/topics/discussions/Overview.md | 1 +
....Disable_stack_trace_in_debug.verified.txt | 667 +++++++++++++++++-
3 files changed, 668 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
index 7a75cd463e..6a865413bb 100644
--- a/README.md
+++ b/README.md
@@ -15,14 +15,7 @@
## Give a Star! :star:
If you like or are using this project please give it a star. Thanks!
-Vogen is often mispronounced as Vogen, but it's actually pronounced Vogen:
-
-"Voh Jen"
-
-
+_Vogen is often mispronounced as Vogen, but it's actually pronounced Vogen: **"Voh Jen"** [#](assets/voh-jen.wav)
# Vogen: cure your Primitive Obsession
diff --git a/docs/site/Writerside/topics/discussions/Overview.md b/docs/site/Writerside/topics/discussions/Overview.md
index 859983593c..fdca03d319 100644
--- a/docs/site/Writerside/topics/discussions/Overview.md
+++ b/docs/site/Writerside/topics/discussions/Overview.md
@@ -4,6 +4,7 @@
+
[Vogen](https://github.com/SteveDunn/Vogen) wraps .NET primitives. You provide this:
``` c#
diff --git a/tests/SnapshotTests/GeneralStuff/snapshots/snap-v8.0/GeneralTests.Disable_stack_trace_in_debug.verified.txt b/tests/SnapshotTests/GeneralStuff/snapshots/snap-v8.0/GeneralTests.Disable_stack_trace_in_debug.verified.txt
index 5f282702bb..0319ea3ad2 100644
--- a/tests/SnapshotTests/GeneralStuff/snapshots/snap-v8.0/GeneralTests.Disable_stack_trace_in_debug.verified.txt
+++ b/tests/SnapshotTests/GeneralStuff/snapshots/snap-v8.0/GeneralTests.Disable_stack_trace_in_debug.verified.txt
@@ -1 +1,666 @@
-
\ No newline at end of file
+[
+// ------------------------------------------------------------------------------
+//
+// This code was generated by a source generator named Vogen (https://github.com/SteveDunn/Vogen)
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+// ------------------------------------------------------------------------------
+
+// Suppress warnings about [Obsolete] member usage in generated code.
+#pragma warning disable CS0618
+
+// Suppress warnings for 'Override methods on comparable types'.
+#pragma warning disable CA1036
+
+// Suppress Error MA0097 : A class that implements IComparable or IComparable should override comparison operators
+#pragma warning disable MA0097
+
+// Suppress warning for 'The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. Auto-generated code requires an explicit '#nullable' directive in source.'
+// The generator copies signatures from the BCL, e.g. for `TryParse`, and some of those have nullable annotations.
+#pragma warning disable CS8669, CS8632
+
+// Suppress warnings about CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member'
+#pragma warning disable CS1591
+
+namespace generator;
+
+public class VogenTypesFactory : global::System.Text.Json.Serialization.JsonConverterFactory
+{
+ public VogenTypesFactory() { }
+
+ private static readonly global::System.Collections.Generic.Dictionary> _lookup =
+ new global::System.Collections.Generic.Dictionary> {
+ { typeof(MyVo), new global::System.Lazy(() => new MyVo.MyVoSystemTextJsonConverter()) }
+ };
+
+ public override bool CanConvert(global::System.Type typeToConvert) => _lookup.ContainsKey(typeToConvert);
+
+ public override global::System.Text.Json.Serialization.JsonConverter CreateConverter(global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options) =>
+ _lookup[typeToConvert].Value;
+}
+
+// ------------------------------------------------------------------------------
+//
+// This code was generated by a source generator named Vogen (https://github.com/SteveDunn/Vogen)
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+// ------------------------------------------------------------------------------
+// Suppress warnings about [Obsolete] member usage in generated code.
+#pragma warning disable CS0618
+// Suppress warnings for 'Override methods on comparable types'.
+#pragma warning disable CA1036
+// Suppress Error MA0097 : A class that implements IComparable or IComparable should override comparison operators
+#pragma warning disable MA0097
+// Suppress warning for 'The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. Auto-generated code requires an explicit '#nullable' directive in source.'
+// The generator copies signatures from the BCL, e.g. for `TryParse`, and some of those have nullable annotations.
+#pragma warning disable CS8669, CS8632
+// Suppress warnings about CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member'
+#pragma warning disable CS1591
+using Vogen;
+
+[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Vogen", "1.0.0.0")]
+[global::System.Text.Json.Serialization.JsonConverter(typeof(MyVoSystemTextJsonConverter))]
+[global::System.ComponentModel.TypeConverter(typeof(MyVoTypeConverter))]
+[global::System.Diagnostics.DebuggerTypeProxyAttribute(typeof(MyVoDebugView))]
+[global::System.Diagnostics.DebuggerDisplayAttribute("Underlying type: System.Int32, Value = { _value }")]
+public partial class MyVo : global::System.IEquatable, global::System.IEquatable, global::System.IComparable, global::System.IComparable, global::System.IParsable, global::System.ISpanParsable, global::System.IUtf8SpanParsable
+{
+#if !VOGEN_NO_VALIDATION
+ private readonly global::System.Boolean _isInitialized;
+#endif
+ private readonly System.Int32 _value;
+ ///
+ /// Gets the underlying value if set, otherwise a is thrown.
+ ///
+ public System.Int32 Value
+ {
+ [global::System.Diagnostics.DebuggerStepThroughAttribute]
+ get
+ {
+ EnsureInitialized();
+ return _value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerStepThroughAttribute]
+ [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)]
+ public MyVo()
+ {
+#if DEBUG
+
+#endif
+#if !VOGEN_NO_VALIDATION
+ _isInitialized = false;
+#endif
+ _value = default;
+ }
+
+ [global::System.Diagnostics.DebuggerStepThroughAttribute]
+ private MyVo(System.Int32 value)
+ {
+ _value = value;
+#if !VOGEN_NO_VALIDATION
+ _isInitialized = true;
+#endif
+ }
+
+ ///
+ /// Builds an instance from the provided underlying type.
+ ///
+ /// The underlying type.
+ /// An instance of this type.
+ public static MyVo From(System.Int32 value)
+ {
+ MyVo instance = new MyVo(value);
+ return instance;
+ }
+
+ ///
+ /// Tries to build an instance from the provided underlying type.
+ /// If a normalization method is provided, it will be called.
+ /// If validation is provided, and it fails, false will be returned.
+ ///
+ /// The underlying type.
+ /// An instance of the value object.
+ /// True if the value object can be built, otherwise false.
+
+#pragma warning disable CS8767 // Nullability of reference types in type of parameter doesn't match implicitly implemented member because of nullability attributes.
+
+ public static bool TryFrom(
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ System.Int32 value,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.MaybeNullWhen(false)]
+#endif
+ out MyVo vo)
+#pragma warning restore CS8767 // Nullability of reference types in type of parameter doesn't match implicitly implemented member because of nullability attributes.
+
+ {
+ vo = new MyVo(value);
+ return true;
+ }
+
+ ///
+ /// Tries to build an instance from the provided underlying value.
+ /// If a normalization method is provided, it will be called.
+ /// If validation is provided, and it fails, an error will be returned.
+ ///
+ /// The primitive value.
+ /// A containing either the value object, or an error.
+ public static ValueObjectOrError TryFrom(System.Int32 value)
+ {
+ return new ValueObjectOrError(new MyVo(value));
+ }
+
+ [global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+#if NETCOREAPP3_0_OR_GREATER
+[global:: System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute(true, nameof(_value))]
+[global:: System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute(true, nameof(Value))]
+#endif
+#if VOGEN_NO_VALIDATION
+#pragma warning disable CS8775
+ public bool IsInitialized() => true;
+#pragma warning restore CS8775
+#else
+ public bool IsInitialized() => _isInitialized;
+#endif
+ // only called internally when something has been deserialized into
+ // its primitive type.
+ private static MyVo __Deserialize(System.Int32 value)
+ {
+ return new MyVo(value);
+ }
+
+ public global::System.Boolean Equals(MyVo other)
+ {
+ if (ReferenceEquals(null, other))
+ {
+ return false;
+ }
+
+ // It's possible to create uninitialized instances via converters such as EfCore (HasDefaultValue), which call Equals.
+ // We treat anything uninitialized as not equal to anything, even other uninitialized instances of this type.
+ if (!IsInitialized() || !other.IsInitialized())
+ return false;
+ if (ReferenceEquals(this, other))
+ {
+ return true;
+ }
+
+ return GetType() == other.GetType() && global::System.Collections.Generic.EqualityComparer.Default.Equals(Value, other.Value);
+ }
+
+ public global::System.Boolean Equals(MyVo other, global::System.Collections.Generic.IEqualityComparer comparer)
+ {
+ return comparer.Equals(this, other);
+ }
+
+ public global::System.Boolean Equals(System.Int32 primitive)
+ {
+ return Value.Equals(primitive);
+ }
+
+ public override global::System.Boolean Equals(global::System.Object obj)
+ {
+ return Equals(obj as MyVo);
+ }
+
+ public static global::System.Boolean operator ==(MyVo left, MyVo right) => Equals(left, right);
+ public static global::System.Boolean operator !=(MyVo left, MyVo right) => !Equals(left, right);
+ public static global::System.Boolean operator ==(MyVo left, System.Int32 right) => left.Value.Equals(right);
+ public static global::System.Boolean operator ==(System.Int32 left, MyVo right) => right.Value.Equals(left);
+ public static global::System.Boolean operator !=(System.Int32 left, MyVo right) => !(left == right);
+ public static global::System.Boolean operator !=(MyVo left, System.Int32 right) => !(left == right);
+ public static explicit operator MyVo(System.Int32 value) => From(value);
+ public static explicit operator System.Int32(MyVo value) => value.Value;
+ public int CompareTo(MyVo other)
+ {
+ if (other is null)
+ return 1;
+ return Value.CompareTo(other.Value);
+ }
+
+ public int CompareTo(object other)
+ {
+ if (other is null)
+ return 1;
+ if (other is MyVo x)
+ return CompareTo(x);
+ throw new global::System.ArgumentException("Cannot compare to object as it is not of type MyVo", nameof(other));
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(global::System.ReadOnlySpan utf8Text, global::System.Globalization.NumberStyles style, global::System.IFormatProvider provider,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(utf8Text, style, provider, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(global::System.ReadOnlySpan utf8Text, global::System.IFormatProvider provider,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(utf8Text, provider, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(global::System.ReadOnlySpan utf8Text,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(utf8Text, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(global::System.ReadOnlySpan s, global::System.Globalization.NumberStyles style, global::System.IFormatProvider provider,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(s, style, provider, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(global::System.ReadOnlySpan s, global::System.IFormatProvider provider,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(s, provider, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(global::System.ReadOnlySpan s,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(s, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(string s, global::System.Globalization.NumberStyles style, global::System.IFormatProvider provider,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(s, style, provider, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(string s, global::System.IFormatProvider provider,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(s, provider, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// True if the value could a) be parsed by the underlying type, and b) passes any validation (after running any optional normalization).
+ ///
+ public static global::System.Boolean TryParse(string s,
+#if NETCOREAPP3_0_OR_GREATER
+[global::System.Diagnostics.CodeAnalysis.NotNullWhen(true)]
+#endif
+ out MyVo result)
+ {
+ if (System.Int32.TryParse(s, out var __v))
+ {
+ result = new MyVo(__v);
+ return true;
+ }
+
+ result = default;
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// The value created by calling the Parse method on the primitive.
+ ///
+ /// Thrown when the value can be parsed, but is not valid.
+ public static MyVo Parse(global::System.ReadOnlySpan utf8Text, global::System.Globalization.NumberStyles style, global::System.IFormatProvider provider)
+ {
+ var r = System.Int32.Parse(utf8Text, style, provider);
+ return From(r);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// The value created by calling the Parse method on the primitive.
+ ///
+ /// Thrown when the value can be parsed, but is not valid.
+ public static MyVo Parse(global::System.ReadOnlySpan utf8Text, global::System.IFormatProvider provider)
+ {
+ var r = System.Int32.Parse(utf8Text, provider);
+ return From(r);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// The value created by calling the Parse method on the primitive.
+ ///
+ /// Thrown when the value can be parsed, but is not valid.
+ public static MyVo Parse(global::System.ReadOnlySpan s, global::System.Globalization.NumberStyles style, global::System.IFormatProvider provider)
+ {
+ var r = System.Int32.Parse(s, style, provider);
+ return From(r);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// The value created by calling the Parse method on the primitive.
+ ///
+ /// Thrown when the value can be parsed, but is not valid.
+ public static MyVo Parse(global::System.ReadOnlySpan s, global::System.IFormatProvider provider)
+ {
+ var r = System.Int32.Parse(s, provider);
+ return From(r);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// The value created by calling the Parse method on the primitive.
+ ///
+ /// Thrown when the value can be parsed, but is not valid.
+ public static MyVo Parse(string s)
+ {
+ var r = System.Int32.Parse(s);
+ return From(r);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// The value created by calling the Parse method on the primitive.
+ ///
+ /// Thrown when the value can be parsed, but is not valid.
+ public static MyVo Parse(string s, global::System.Globalization.NumberStyles style)
+ {
+ var r = System.Int32.Parse(s, style);
+ return From(r);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// The value created by calling the Parse method on the primitive.
+ ///
+ /// Thrown when the value can be parsed, but is not valid.
+ public static MyVo Parse(string s, global::System.Globalization.NumberStyles style, global::System.IFormatProvider provider)
+ {
+ var r = System.Int32.Parse(s, style, provider);
+ return From(r);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ /// The value created by calling the Parse method on the primitive.
+ ///
+ /// Thrown when the value can be parsed, but is not valid.
+ public static MyVo Parse(string s, global::System.IFormatProvider provider)
+ {
+ var r = System.Int32.Parse(s, provider);
+ return From(r);
+ }
+
+ public override global::System.Int32 GetHashCode()
+ {
+ unchecked // Overflow is fine, just wrap
+ {
+ global::System.Int32 hash = (global::System.Int32)2166136261;
+ hash = (hash * 16777619) ^ GetType().GetHashCode();
+ hash = (hash * 16777619) ^ global::System.Collections.Generic.EqualityComparer.Default.GetHashCode(Value);
+ return hash;
+ }
+ }
+
+#if NETCOREAPP3_0_OR_GREATER
+ [global::System.Diagnostics.CodeAnalysis.MemberNotNullAttribute(nameof(_value))]
+ [global::System.Diagnostics.CodeAnalysis.MemberNotNullAttribute(nameof(Value))]
+#endif
+ private void EnsureInitialized()
+ {
+ if (!IsInitialized())
+ {
+#if DEBUG
+ global::System.String message = "Use of uninitialized Value Object.";
+#else
+ global::System.String message = "Use of uninitialized Value Object.";
+#endif
+ throw new global::Vogen.ValueObjectValidationException(message);
+ }
+ }
+
+ /// Returns the string representation of the underlying .
+ public override global::System.String ToString() => IsInitialized() ? Value.ToString() : "[UNINITIALIZED]";
+#nullable disable
+ ///
+ /// Converts a MyVo to or from JSON.
+ ///
+ public class MyVoSystemTextJsonConverter : global::System.Text.Json.Serialization.JsonConverter
+ {
+ public override MyVo Read(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
+ {
+#if NET5_0_OR_GREATER
+ return MyVo.__Deserialize(global::System.Text.Json.JsonSerializer.Deserialize(ref reader, (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo)options.GetTypeInfo(typeof(global::System.Int32))));
+#else
+ return MyVo.__Deserialize(reader.GetInt32());
+#endif
+ }
+
+ public override void Write(System.Text.Json.Utf8JsonWriter writer, MyVo value, global::System.Text.Json.JsonSerializerOptions options)
+ {
+#if NET5_0_OR_GREATER
+ global::System.Text.Json.JsonSerializer.Serialize(writer, value.Value, options);
+#else
+ writer.WriteNumberValue(value.Value);
+#endif
+ }
+#if NET6_0_OR_GREATER
+ public override MyVo ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
+ {
+ return MyVo.__Deserialize(global::System.Int32.Parse(reader.GetString(), global::System.Globalization.NumberStyles.Any, global::System.Globalization.CultureInfo.InvariantCulture));
+ }
+
+ public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, MyVo value, global::System.Text.Json.JsonSerializerOptions options)
+ {
+ writer.WritePropertyName(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
+ }
+#endif
+ }
+
+#nullable restore
+#nullable disable
+ class MyVoTypeConverter : global::System.ComponentModel.TypeConverter
+ {
+ public override global::System.Boolean CanConvertFrom(global::System.ComponentModel.ITypeDescriptorContext context, global::System.Type sourceType)
+ {
+ return sourceType == typeof(global::System.Int32) || sourceType == typeof(global::System.String) || base.CanConvertFrom(context, sourceType);
+ }
+
+ public override global::System.Object ConvertFrom(global::System.ComponentModel.ITypeDescriptorContext context, global::System.Globalization.CultureInfo culture, global::System.Object value)
+ {
+ return value switch
+ {
+ global::System.Int32 intValue => MyVo.__Deserialize(intValue),
+ global::System.String stringValue when !global::System.String.IsNullOrEmpty(stringValue) && global::System.Int32.TryParse(stringValue, out var result) => MyVo.__Deserialize(result),
+ _ => base.ConvertFrom(context, culture, value),
+ };
+ }
+
+ public override bool CanConvertTo(global::System.ComponentModel.ITypeDescriptorContext context, global::System.Type sourceType)
+ {
+ return sourceType == typeof(global::System.Int32) || sourceType == typeof(global::System.String) || base.CanConvertTo(context, sourceType);
+ }
+
+ public override object ConvertTo(global::System.ComponentModel.ITypeDescriptorContext context, global::System.Globalization.CultureInfo culture, global::System.Object value, global::System.Type destinationType)
+ {
+ if (value is MyVo idValue)
+ {
+ if (destinationType == typeof(global::System.Int32))
+ {
+ return idValue.Value;
+ }
+
+ if (destinationType == typeof(global::System.String))
+ {
+ return idValue.Value.ToString();
+ }
+ }
+
+ return base.ConvertTo(context, culture, value, destinationType);
+ }
+ }
+
+#nullable restore
+ internal sealed class MyVoDebugView
+ {
+ private readonly MyVo _t;
+ MyVoDebugView(MyVo t)
+ {
+ _t = t;
+ }
+
+ public global::System.String UnderlyingType => "System.Int32";
+ public System.Int32 Value => _t.Value;
+ public global::System.String Conversions => @"[global::System.Text.Json.Serialization.JsonConverter(typeof(MyVoSystemTextJsonConverter))]
+[global::System.ComponentModel.TypeConverter(typeof(MyVoTypeConverter))]
+";
+ }
+}
+]
\ No newline at end of file