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.
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.1 to 5.1.0.
Release notes
Sourced from Castle.Core's releases.
Changelog
Sourced from Castle.Core's changelog.
Commits
c6d7a16
Update changelog for 5.1.0 release4b85681
Merge pull request #621 from stakx/bugfix/sealed-interface-methods4c5e227
Update the changelog9c58968
Exclude non-proxyable interface methods0fc266e
MissingMethodException
when proxying interface with sealed methoda133ee3
Merge pull request #626 from stakx/refactor/inheritance-invocation-without-ta...51894ee
Update changelog3443584
Updateref/
public contract files5aa18ed
Use standard invocation type for class proxy methods w/o targetd0c6e38
Merge pull request #619 from stakx/bugfix/covariant-returnsDependabot 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)