andrewlock / StronglyTypedId

A Rosyln-powered generator for strongly-typed IDs
MIT License
1.52k stars 80 forks source link

Add the Parse and TryParse static methods #85

Open lucasteles opened 1 year ago

lucasteles commented 1 year ago

Add the .Parse and .TryParse static methods on all base templates.

They are common and expected methods for value types.

.TryParse is especially good because enables the use of custom types on ASP.NET Minimal Api routes

fix https://github.com/andrewlock/StronglyTypedId/issues/30

hankovich commented 1 year ago

Looks great. Are you sure that Parse and TryParse for string-backed and nullable-string-backed ids should trim the passed string?

lucasteles commented 1 year ago

@hankovich no I don't 😅,

It looked correct to me at first, usually it's undesired spaces at edges of the strings

Wdyt?

hankovich commented 1 year ago

@lucasteles I think Parse/TryParse should not do any additional manipulations, they should act as a shorthand for new TId(TBackedType.Parse(input))

If trimming will be added, it makes sense to trim in constructors, not inside parsing methods. And I'm not sure everyone needs they input to be trimmed

lucasteles commented 1 year ago

Makes sense to me, I will update the the PR

lucasteles commented 1 year ago

@hankovich updated

gunnbr commented 10 months ago

Thank you, @lucasteles ! I thought I must be using this library wrong since I have to manually add the static .TryParse to each of my Ids to get minimal API routing to work properly.

@andrewlock , any chance of getting this or something similar merged into the release?

lucasteles commented 10 months ago

Thank you, @lucasteles ! I thought I must be using this library wrong since I have to manually add the static .TryParse to each of my Ids to get minimal API routing to work properly.

I implemented it in my fork

https://github.com/lucasteles/Strongly