Proxies using records derived from a base generic record broken using .NET 6 compiler (@CesarD, #632)
Failure proxying type that has a non-inheritable custom attribute type applied where null argument is given for array parameter (@stakx, #637)
Nested custom attribute types do not get replicated (@stakx, #638)
5.1.0
Enhancements
Support for covariant method returns (@stakx, #619)
Performance improvement with proxy type generation for class proxies (without target). Abstract class methods now reuse a predefined invocation type (like methods of interface proxies without target; see explanation below at version 5.0.0 enhancements) (@stakx, #626)
Bugfixes
DynamicProxy emits invalid metadata for redeclared event (@stakx, #590)
Proxies using records with a base class broken using .NET 6 compiler (@ajcvickers, #601)
MissingMethodException when proxying interfaces containing sealed methods (@stakx, #621)
Non-intercepted methods on a class proxy with target are now forwarded to the target (@stakx, #571)
Significant performance improvements with proxy type generation for interface proxies without target. Up until now, DynamicProxy generated a separate IInvocation implementation type for every single proxied method – it is now able to reuse a single predefined type in many cases, thereby reducing the total amount of dynamic type generation. (@stakx, #573)
Bugfixes
Generic method with differently named generic arguments to parent throws KeyNotFoundException (@stakx, #106)
Proxying certain [Serializable] classes produces proxy types that fail PEVerify test (@stakx, #367)
DynamicProxy generates two modules when proceeding from a class proxy's protected method to the target, causing an InvalidOperationException when saving the generated assembly to disk (@stakx, #569)
Removed support for Code Access Security (CAS). (@stakx, #502)
Removed support for Remoting. This library no longer defines any types deriving from MarshalByRefObject, and ProxyUtil.IsProxy (which used to recognize remoting/"transparent" proxies) now tests only for DynamicProxy proxies. (@stakx, #507)
The following public members have been removed:
Castle.Core.Internal.CollectionExtensions (class)
Castle.Core.Internal.Lock (class) along with all related types and methods
Castle.Core.Pair<,> (type). Use System.ValueTuple<,> or System.Tuple<,> instead.
all type members in Castle.DynamicProxy.ModuleScope that gave direct access to DynamicProxy's type cache and ModuleBuilders. Only SaveAssembly, LoadAssemblyIntoCache, and members supporting these two facilities are left public.
almost all types and type members in the Castle.DynamicProxy.* sub-namespaces, as most of them are intended for internal use only.
DynamicProxy's custom exception types have been replaced by standard BCL exceptions (where appropriate), and by a single DynamicProxyException type for internal DynamicProxy errors.
5.0.0-beta001
Full release notes will be available in the future.
4.4.1
Bugfixes
Prevent method name collisions when a proxy type implements more than two identically named interfaces having one or more identically named methods each. Name collisions are avoided by including the declaring types' namespaces in the proxy type's method names. (@stakx, #469)
Proxies using records derived from a base generic record broken using .NET 6 compiler (@CesarD, #632)
Failure proxying type that has a non-inheritable custom attribute type applied where null argument is given for array parameter (@stakx, #637)
Nested custom attribute types do not get replicated (@stakx, #638)
5.1.0 (2022-08-02)
Enhancements:
Support for covariant method returns (@stakx, #619)
Performance improvement with proxy type generation for class proxies (without target). Abstract class methods now reuse a predefined invocation type (like methods of interface proxies without target; see explanation below at version 5.0.0 enhancements) (@stakx, #626)
Bugfixes:
DynamicProxy emits invalid metadata for redeclared event (@stakx, #590)
Proxies using records with a base class broken using .NET 6 compiler (@ajcvickers, #601)
MissingMethodException when proxying interfaces containing sealed methods (@stakx, #621)
Non-intercepted methods on a class proxy with target are now forwarded to the target (@stakx, #571)
Significant performance improvements with proxy type generation for interface proxies without target. Up until now, DynamicProxy generated a separate IInvocation implementation type for every single proxied method – it is now able to reuse a single predefined type in many cases, thereby reducing the total amount of dynamic type generation. (@stakx, #573)
Bugfixes:
Generic method with differently named generic arguments to parent throws KeyNotFoundException (@stakx, #106)
Proxying certain [Serializable] classes produces proxy types that fail PEVerify test (@stakx, #367)
DynamicProxy generates two modules when proceeding from a class proxy's protected method to the target, causing an InvalidOperationException when saving the generated assembly to disk (@stakx, #569)
Removed support for Code Access Security (CAS). (@stakx, #502)
Removed support for Remoting. This library no longer defines any types deriving from MarshalByRefObject, and ProxyUtil.IsProxy (which used to recognize remoting/"transparent" proxies) now tests only for DynamicProxy proxies. (@stakx, #507)
The following public members have been removed:
Castle.Core.Internal.CollectionExtensions (class)
Castle.Core.Internal.Lock (class) along with all related types and methods
Castle.Core.Pair<,> (type). Use System.ValueTuple<,> or System.Tuple<,> instead.
all type members in Castle.DynamicProxy.ModuleScope that gave direct access to DynamicProxy's type cache and ModuleBuilders. Only SaveAssembly, LoadAssemblyIntoCache, and members supporting these two facilities are left public.
almost all types and type members in the Castle.DynamicProxy.* sub-namespaces, as most of them are intended for internal use only.
DynamicProxy's custom exception types have been replaced by standard BCL exceptions (where appropriate), and by a single DynamicProxyException type for internal DynamicProxy errors.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps Castle.Core from 4.4.0 to 5.1.1.
Release notes
Sourced from Castle.Core's releases.
... (truncated)
Changelog
Sourced from Castle.Core's changelog.
... (truncated)
Commits
e60c9e2
Update changelog for 5.1.1 release18ddd62
Merge pull request #643 from stakx/bug/covariant-returns6b16135
Update changelogeda2c80
Move check for covariant return typesa1b44d7
Also check for covariant return types if both of them are genericbe22332
Add failing tests for covariant return types involving a variant generic inte...ee08309
Detail: assert thatIsCovariantReturnTypes
only gets called for return types6238c15
Also check for covariant return types if one of them is generic06884f4
Detail: adjust names of derivedrecord
types2d944e4
Add failing test for proxying type derived from genericrecord
typeDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)