ProxyGen.NET Version History
January 26, 2025 ยท View on GitHub
- 1.0.0: First non preview release
- 1.1.0:
- added:
ProxyGeneratoraccepts interceptors having more than one public constructor
- added:
- 1.1.1:
- added: Anonymous type support
- fixed: Malformed assmebly names (in certain circumstances)
- fixed: Badly identified declaring types (in certain circumstances)
- 2.0.0:
- breaking: Dropped
netstandard1.6support - breaking: Compilation errors are stored in a single string (instead of string array)
- breaking: Removed
Featuresclass - fixed: Misinterpreted "ref" modifier (in certain circumstances)
- fixed: Proxy generation failed on interface methods having parameter names that were used internally
- fixed: Proxy generation failed on interface methods having by ref array parameter
- done:
ProxyGeneratortested against all the public interfaces found in mscorlib.dll
- breaking: Dropped
- 2.0.1:
- done: Remove internal classes that can be referenced from "Solti.Utils.Primitives"
- 2.0.2:
- done: Handle unexpected errors on visibility checks
- 2.0.3:
- done: Renamed assembly
- 2.1.0:
- added:
xXxGenerator.CacheDirectoryproperty
- added:
- 2.1.1:
- done: Small optimization under the hood
- 3.0.0:
- breaking:
InterfaceInterceptor.CALL_TARGEThas been removed - breaking:
InterfaceInterceptor.Invoke()returns the result of the original method (instead ofCALL_TARGET)
- breaking:
- 3.0.1:
- fixed: Missing nullable annotation on
InterfaceInterceptor.Invoke()
- fixed: Missing nullable annotation on
- 3.0.2:
- done: Add title and description to the generated assembly
- 3.0.3:
- fixed: Missing nullable annotation on
InterfaceInterceptor.Invoke()(again)
- fixed: Missing nullable annotation on
- 3.1.0:
- added:
xXxGenerator.GeneratedTypeAsyncproperty - obsolete:
xXxGenerator.GeneratedTypeproperty
- added:
- 3.1.1:
- fixed: Infinite lock in
TypeGenerator.GetGeneratedTypeAsync()
- fixed: Infinite lock in
- 3.1.2:
- fixed: Missing reference error
- 3.1.3:
- done: Reduced reference count in the generated assembly
- 3.1.4:
- fixed: Possible stack overflow
- 4.0.0-preview1:
- breaking: New
Interfaceinterceptorlayout (though it affects the internal parts only) - breaking: Removed
TypeGenerator.Referencesproperty - breaking: New
ISyntaxFactorylayout - introduced:
IProxySyntaxFactoryinterface - introduced:
ConcurrentInterfaceinterceptorclass - improved: Generated code
- done: Enhanced emit process
- done: Interceptors can modify event and property arguments
- breaking: New
- 4.0.0-preview2:
- breaking: Removed
TypeGenerator.GeneratedType[Async]property. It is substituted by theGetGeneratedType[Async]()method - breaking: Assembly cache directory can be set from
appname.runtimeconfig.json - introduced: Proxy embedding
- introduced: Cancellable
TypeGenerators - introduced: Pointer type support
- introduced:
ref readonlysupport - introduced: Source code dumping
- improved: Generated code
- improved: Visibility check
- fixed:
InterfaceInterceptor.InvokeTargetcleanup after invocation
- breaking: Removed
- 4.0.0-preview3:
- breaking: Removed
TypeGenerator.SyntaxFactoryproperty (syntax factories are intended to be private) - done: Register ProxyGen as an analyzer
- fixed: Missing dependencies (in
Solti.Utils.Proxy.deps.json)
- breaking: Removed
- 4.0.0-preview4:
- breaking: Related property names in
appname.runtimeconfig.jsonshould be prefixed with "ProxyGen." - introduced:
IProxyAccessinterface - introduced: Source code dumping is available in compile time
- breaking: Related property names in
- 4.0.0-preview5:
- fixed: MSBuild property reading issue
- 4.0.0-preview6:
- done: Disable "nullabe annotation context" in generated sources
- done: Source generator warns on unsupported language version
- 4.0.0-preview7:
- breaking:
ITypeResolutionbecame internal - fixed: Embedded type resolution issue
- breaking:
- 4.0.0-preview8:
- fixed: Missing reference issue
- improved: Syntax factory performance
- 4.0.0:
- done: Some code cosmetics
- 4.0.1:
- fixed: Hash code generation issue
- fixed: Invalid qualified metadata name issue
- fixed: The system could not find generic methods having non-generic counterpart
- introduced: Native integer support
- done: Test against .NET5.0
- 4.0.2:
- done: Annotate generated classes with
GeneratedCodeAttribute - done: Suppress all compiler warnings in the generated sources
- done: Annotate generated classes with
- 5.0.0:
- breaking: New
InterfaceInterceptor<>.Invoke()layout - breaking: Dropped
ConcurrentInterfaceInterceptor<>class - done: Simplified generated code
- breaking: New
- 5.0.1:
- added: Package "readme"
- 6.0.0-preview1:
- breaking: Updated Roslyn to v4 (so the source generator feature may not work properly in older VS2019 versions)
- done: Generator logic has been overhauled
- introduced: Proxy activator (
Generator.Activate()) feature - introduced: Untyped API
- 6.0.0-preview2:
- fixed: Some
ProxyEmbedderrelated issues - fixed: Broken
netcoreapp3.0support - done: Code alignments
- done: Test against
netcoreapp3.0,net5.0,net6.0
- fixed: Some
- 6.0.0:
- fixed: Missing validation
- fixed: Crash on attempt to embed the same generator more than once
- 6.0.1:
- fixed: Performance issue of generated proxy
- 7.0.0-preview1:
- breaking: Dropped
InvocationContext.InvokeTargetproperty - improved: Significantly improved performance
- breaking: Dropped
- 7.0.0-preview2:
- improved: More performant generated code
- introduced:
MethodContextclass
- 7.0.0-preview3:
- improved: Proxy activation performance
- 7.0.0-preview4:
- fixed: Caching issue
- 7.0.0-preview5:
- improved: Reflection
- 7.0.0-preview6:
- introduced:
ProxyEmbedderuses Roslyn's source generator V2 API
- introduced:
- 7.0.0:
- updated: Solti.Utils.Primitives
- 7.1.0:
- improved: Proxy activator (now it is part of the generated class, no expression compilation required)
- 8.0.0-preview1:
- breaking:
InterfaceInterceptor<TInterface>.Member|Methodhas been renamed toInterfaceMember|InterfaceMethod - introduced:
InterfaceInterceptor<TInterface, TTarget>class - updated: Roslyn to v4.3
- done: Tested against
net7.0
- breaking:
- 8.0.0:
- breaking: Dropped
GeneratedClassclass - done: Some minor code alignment
- breaking: Dropped
- 8.0.1:
- fixed: Typo in
MethodContextclass (I consider it as a fix instead of breaking change)
- fixed: Typo in
- 8.1.0:
- introduced: Generic constraint support
- done: Using static delegates in the generated proxy classes (which involves performance benefits)
- 8.1.1:
- fixed: Possible
NullReferenceExceptionwhen trying to initialize configuration
- fixed: Possible
- 8.2.0:
- fixed: Couple of reflection related bugs
- introduced: .NET Framework support
- introduced: Roslyn v3 (legacy) variant
- 8.2.1:
- done: Number of dependencies has been reduced by 2
- 9.0.0:
- improved: Cancellation in
asnycGeneratormethods - done: Tested against
net8.0, related fixes - breaking:
Generators are demoted toclass
- improved: Cancellation in
- 9.1.0:
- introduced: Partial interface implementation support
- 9.1.1:
- done: Tested against
net9.0, related fixes
- done: Tested against