New
v2.24.84
What's Changed
Features
- Add source generation of proxies by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1223
- Add NerdbankMessagePackFormatter by @trippwill in https://github.com/microsoft/vs-streamjsonrpc/pull/1100
- Enable RPC marshalable objects in
NerdbankMessagePackFormatterby @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1260 - Source generate proxies for RpcMarshalable interfaces by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1246
- Add
RpcTargetMetadatageneration fromITypeShapeby @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1251 - Create a NativeAOT-compatible JsonRpc.AddLocalTargetObject method by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1236
- Use PolyType shapes for events by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1297
- Add
PolyTypeJsonFormatteras an experimental API by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1344 - Add
RpcTargetMetadata.FromShape<T>overloads that work on .NET Framework by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1358 - Expose MessageFormatterEnumerableTracker.EnumeratorResults as public by @eerhardt in https://github.com/microsoft/vs-streamjsonrpc/pull/1206
Fixes
- Remove Dependency on Newtonsoft.Json from JsonRpc by @eerhardt in https://github.com/microsoft/vs-streamjsonrpc/pull/1201
- Remove Dependency on Newtonsoft.Json From Protocol objects by @eerhardt in https://github.com/microsoft/vs-streamjsonrpc/pull/1198
- Cut ProxyGeneration out if dynamic code isn't supported by @eerhardt in https://github.com/microsoft/vs-streamjsonrpc/pull/1202
- Add attributes for NativeAOT safety by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1196
- Refactor code and annotations to fix all warnings in NativeAOTCompatibility. by @eerhardt in https://github.com/microsoft/vs-streamjsonrpc/pull/1207
- Reduce trimming demands for RPC target objects by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1233
- Improve performance of
WebSocketMessageHandlerby @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1237 - Cap the amount of text copied into the stringbuilder in JsonRpcEventSource.Format by @ToddGrun in https://github.com/microsoft/vs-streamjsonrpc/pull/1187
- Use JsonElement.Clone instead of Deserialize by @eerhardt in https://github.com/microsoft/vs-streamjsonrpc/pull/1200
- Refactor reflection usage to only reflection against the one method by @eerhardt in https://github.com/microsoft/vs-streamjsonrpc/pull/1199
- Create dynamic proxies in the same ALC as the interface they implement by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1248
- Avoid 1-2 first chance exceptions on out of order disposal by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1220
- Avoid loading assemblies unnecessarily by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1256
- Dynamically generated proxies reliably invoke with non-aliased method names by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1268
- Proxies should honor
MethodShapeAttribute.Nameby @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1271 - Fix proxy generation for interfaces with type parameter variance modifiers by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1300
- Fix source generated proxies compile errors by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1303
- Allow
nullargument toAs<T>andIs(Type)helper methods by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1305 - Avoid producing a new proxy 'group' that is redundant with the first by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1315
- Fix perf regression in testing for RPC marshalable objects by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1329
- Fix perf regression in testing for RPC marshalable objects by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1330
Documentation and Miscellaneous
- Typos and doc tweaks by @drewnoakes in https://github.com/microsoft/vs-streamjsonrpc/pull/1181
- Replace tedious GenerateShapeFor attributes with method shapes by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1273
- Share more with
FormatterBaseby @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1317 - Add DebuggerDisplay for RpcTargetMetadata by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1338
- Obsolete an API that we intend to remove before a stable release by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1359
- Skip collection of symbols from samples project by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1240
- Classify UnreachableAssembly symbols as test symbol by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1253
- Eliminate over-build from the
dotnet publish"test" by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1254 - Remove the special PolyType job from the build by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1298
- Pack with nuget semver 2 rules by @AArnott in https://github.com/microsoft/vs-streamjsonrpc/pull/1316
New Contributors
- @drewnoakes made their first contribution in https://github.com/microsoft/vs-streamjsonrpc/pull/1181
- @ToddGrun made their first contribution in https://github.com/microsoft/vs-streamjsonrpc/pull/1187
- @eerhardt made their first contribution in https://github.com/microsoft/vs-streamjsonrpc/pull/1200
- @trippwill made their first contribution in https://github.com/microsoft/vs-streamjsonrpc/pull/1100
- @Copilot made their first contribution in https://github.com/microsoft/vs-streamjsonrpc/pull/1379
Full Changelog: https://github.com/microsoft/vs-streamjsonrpc/compare/v2.22.23...v2.24.84