Meziantou.Framework.StronglyTypedId
1.0.21
Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Meziantou.Framework.StronglyTypedId --version 1.0.21
NuGet\Install-Package Meziantou.Framework.StronglyTypedId -Version 1.0.21
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Meziantou.Framework.StronglyTypedId" Version="1.0.21"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Meziantou.Framework.StronglyTypedId --version 1.0.21
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Meziantou.Framework.StronglyTypedId, 1.0.21"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Meziantou.Framework.StronglyTypedId as a Cake Addin #addin nuget:?package=Meziantou.Framework.StronglyTypedId&version=1.0.21 // Install Meziantou.Framework.StronglyTypedId as a Cake Tool #tool nuget:?package=Meziantou.Framework.StronglyTypedId&version=1.0.21
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Meziantou.Framework.StronglyTypedId
The source generator generates ctor / properties / equality members / JSON converters
[StronglyTypedId(typeof(int))]
public partial struct ProjectId { }
StronglyTypedId
generates the following code:
[System.ComponentModel.TypeConverterAttribute(typeof(ProjectIdTypeConverter))]
[System.Text.Json.Serialization.JsonConverterAttribute(typeof(ProjectIdJsonConverter))]
[Newtonsoft.Json.JsonConverterAttribute(typeof(ProjectIdNewtonsoftJsonConverter))]
[MongoDB.Bson.Serialization.Attributes.BsonSerializerAttribute(typeof(ProjectIdMongoDBBsonSerializer))]
public partial struct ProjectId : System.IEquatable<ProjectId>
{
public int Value { get; }
public string ValueAsString { get; }
private ProjectId(int value);
public static ProjectId FromInt32(int value);
public static ProjectId Parse(string value);
public static ProjectId Parse(ReadOnlySpan<char> value);
public static bool TryParse(string value, out ProjectId result);
public static bool TryParse(ReadOnlySpan<char> value, out ProjectId result);
public override int GetHashCode();
public override bool Equals(object? other);
public bool Equals(ProjectId other);
public static bool operator ==(ProjectId a, ProjectId b);
public static bool operator !=(ProjectId a, ProjectId b);
public override string ToString();
private partial class CustomerIdTypeConverter : System.ComponentModel.TypeConverter
{
public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Type sourceType);
public override object? ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value);
public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType);
public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType);
}
// Generated only when System.Text.Json is accessible
private partial class CustomerIdJsonConverter : System.Text.Json.Serialization.JsonConverter<ProjectId>
{
public override void Write(System.Text.Json.Utf8JsonWriter writer, ProjectId value, System.Text.Json.JsonSerializerOptions options);
public override ProjectId Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options);
}
// Generated only when Newtonsoft.Json is accessible
private partial class CustomerIdNewtonsoftJsonConverter : Newtonsoft.Json.JsonConverter
{
public override bool CanRead { get; }
public override bool CanWrite { get; }
public override bool CanConvert(System.Type type);
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object? value, Newtonsoft.Json.JsonSerializer serializer);
public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object? existingValue, Newtonsoft.Json.JsonSerializer serializer);
}
// Generated only when MongoDB.Bson.Serialization.Serializers.SerializerBase is accessible
private partial class ProjectIdMongoDBBsonSerializer : MongoDB.Bson.Serialization.Serializers.SerializerBase<Meziantou.Framework.StronglyTypedId.GeneratorTests.StronglyTypedIdTests.IdBoolean>
{
public override ProjectId Deserialize(MongoDB.Bson.Serialization.BsonDeserializationContext context, MongoDB.Bson.Serialization.BsonDeserializationArgs args);
public override void Serialize(MongoDB.Bson.Serialization.BsonSerializationContext context, MongoDB.Bson.Serialization.BsonSerializationArgs args, ProjectId value);
}
}
Configuration
You can configure the code generation using the [StronglyTypedIdAttribute]
attribute:
[StronglyTypedId(idType: typeof(long),
generateSystemTextJsonConverter: true,
generateNewtonsoftJsonConverter: true,
generateSystemComponentModelTypeConverter: true,
generateMongoDBBsonSerialization: true,
addCodeGeneratedAttribute: true
)]
public partial struct ProjectId { }
Additional resources
There are no supported framework assets in this package.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Meziantou.Framework.StronglyTypedId:
Package | Downloads |
---|---|
Allegro.Extensions.Identifiers.Abstractions
Contains strongly typed identifiers abstractions. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Meziantou.Framework.StronglyTypedId:
Repository | Stars |
---|---|
StefH/AnyOf
Use the AnyOf<TFirst, TSecond, ...> type to handle multiple defined types as input parameters or return values for methods.
|
Version | Downloads | Last updated |
---|---|---|
2.3.2 | 475 | 11/17/2024 |
2.3.1 | 2,524 | 10/10/2024 |
2.3.0 | 6,041 | 7/13/2024 |
2.2.0 | 5,055 | 3/21/2024 |
2.1.0 | 3,475 | 11/26/2023 |
2.0.0 | 557 | 11/19/2023 |
1.0.35 | 2,207 | 11/15/2023 |
1.0.34 | 4,339 | 9/5/2023 |
1.0.33 | 692 | 8/7/2023 |
1.0.32 | 6,290 | 3/26/2023 |
1.0.31 | 403 | 3/21/2023 |
1.0.30 | 256 | 3/20/2023 |
1.0.29 | 1,367 | 2/18/2023 |
1.0.28 | 6,635 | 1/3/2023 |
1.0.27 | 483 | 1/2/2023 |
1.0.26 | 329 | 1/2/2023 |
1.0.25 | 327 | 1/1/2023 |
1.0.24 | 344 | 12/27/2022 |
1.0.23 | 307 | 12/26/2022 |
1.0.22 | 2,690 | 8/10/2022 |
1.0.21 | 2,824 | 4/29/2022 |
1.0.20 | 527 | 4/23/2022 |
1.0.19 | 5,959 | 2/23/2022 |
1.0.18 | 468 | 2/12/2022 |
1.0.17 | 774 | 11/10/2021 |
1.0.16 | 489 | 11/8/2021 |
1.0.15 | 3,262 | 7/14/2021 |
1.0.14 | 392 | 6/30/2021 |
1.0.13 | 364 | 6/10/2021 |
1.0.12 | 866 | 5/14/2021 |
1.0.11 | 351 | 5/14/2021 |
1.0.10 | 405 | 4/25/2021 |
1.0.9 | 355 | 4/22/2021 |
1.0.8 | 1,927 | 2/17/2021 |
1.0.7 | 354 | 2/16/2021 |
1.0.6 | 365 | 2/16/2021 |
1.0.5 | 377 | 2/15/2021 |
1.0.4 | 403 | 2/8/2021 |
1.0.3 | 364 | 2/4/2021 |
1.0.2 | 356 | 2/4/2021 |
1.0.1 | 316 | 2/3/2021 |
1.0.0 | 375 | 2/1/2021 |