-
-
Notifications
You must be signed in to change notification settings - Fork 673
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge immutable collections formatters into main library #1029
Merge immutable collections formatters into main library #1029
Conversation
2d2187f
to
dd762a4
Compare
I leave behind type forwarders so that folks who compiled against the old location for these public types will still run successfully with no type load exception.
dd762a4
to
f72ba02
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ImmutableCollection should not add under Unity.
Thanks for reviewing, @neuecc. Are you saying the formatters should not be included in the Unity version? If we exclude it, how do you see Unity customers adding immutable collection support if they want it? Or are immutable collections broken under unity anyways? |
@AArnott
Until now, there was no way to add a formatter for the ImmutableCollection (other than by copy-paste from the source code) As far as I'm concerned, I think it's fine to exclude it completely. |
OK. Thanks for the clarification. I'll omit these from the unity package. |
Thanks, okay to merge. |
This removes the need for a separate assembly and package to support immutable collection types being serialized/deserialized. It also removes the need to manually link in the immutable collection resolver as it is now included in the standard resolver.
This requires that we ship at least one more version of the MessagePack.ImmutableCollection package in order to deliver the type forwarders. After that, we could delete the project from the repo and never ship it again. The function of the type forwarders is to that if someone compiled an assembly that references MessagePack.ImmutableCollection.dll, the CLR will demand that that dll be present at runtime with those types. The type forwarders allow the CLR to recognize that those types moved from one DLL to another and keep functioning. The DLL is only necessary at runtime when other dll's were compiled against it -- otherwise it can be omitted from an application.
Closes #606