@jonorossi jonorossi released this Jun 20, 2018 · 5 commits to master since this release

Assets 2

Enhancements

  • Use shared read locking to reduce lock contention in InvocationHelper and ProxyUtil (@TimLovellSmith, #377)

Bugfixes

  • Prevent interceptors from being able to modify in parameters (@stakx, #370)
  • Make default value replication of optional parameters more tolerant of default values that are represented in metadata with a mismatched type (@stakx, #371)
  • Fix a concurrency issue (writing without taking a write lock first) in BaseProxyGenerator.ObtainProxyType (@stakx, #383)

Deprecations

  • Castle.DynamicProxy.Generators.Emitters.ArgumentsUtil.IsAnyByRef (@stakx, #370)

@jonorossi jonorossi released this Jun 6, 2018 · 24 commits to master since this release

Assets 2

Enhancements

  • Added .NET Standard/.NET Core support for NLog (@snakefoot, #200)
  • Added .NET Standard/.NET Core support for log4net (@snakefoot, #201)
  • DynamicProxy supported C# in parameter modifiers only on the .NET Framework up until now. Adding .NET Standard 1.5 as an additional target to the NuGet package makes them work on .NET Core, too (@stakx, #339)
  • Replicate custom attributes on constructor parameters in the generated proxy type constructors to fulfill introspection of constructors. This does not change the proxying behavior. (@stakx, #341)
  • Improve performance of InvocationHelper cache lookups (@tangdf, #358)
  • Improve fidelity of default value replication of optional parameters to fulfill inspection of the generated proxies. This does not change the proxying behavior. (@stakx, #356)
  • Improve cache performance of MethodFinder.GetAllInstanceMethods (@tangdf, #357)

Bugfixes

  • Fix Castle.Services.Logging.Log4netIntegration assembly file name casing which breaks on Linux (@beginor, #324)
  • Fix Castle.DynamicProxy.Generators.AttributesToAvoidReplicating not being thread safe (InvalidOperationException "Collection was modified; enumeration operation may not execute.") (@BrunoJuchli, #334)
  • Fix TraceLoggerFactory to allow specifying the default logger level (@acjh, #342)
  • Ensure that DynamicProxy doesn't create invalid dynamic assemblies when proxying types from non-strong-named assemblies (@stakx, #327)
  • Fix interceptor selectors being passed System.RuntimeType for class proxies instead of the target type (@stakx, #359)
  • Replace NullReferenceException with descriptive one thrown when interceptors swallow exceptions and cause a null value type to be returned (@jonorossi, #85)

@jonorossi jonorossi released this Oct 10, 2017 · 89 commits to master since this release

Assets 2

Bugfixes

  • Add missing equality checks in MethodSignatureComparer.EqualSignatureTypes to fix TypeLoadExceptions ("Method does not have an implementation") (@stakx, #310)
  • Add missing XML documentation files to NuGet packages (@fir3pho3nixx, #312)

@jonorossi jonorossi released this Sep 28, 2017 · 93 commits to master since this release

Assets 2

Enhancements

  • Add IProxyTargetAccessor.DynProxySetTarget to set the target of a proxy (@yallie, #293)
  • Internal dynamic proxy fields are now private instead of public (@spencercw, #260)

Bugfixes

  • Make ProxyUtil.IsAccessible(MethodBase) take into account declaring type's accessibility so it doesn't report false negatives for e.g. public methods in inaccessible classes. (@stakx, #289)
  • Fix InvalidCastException calling IChangeProxyTarget.ChangeProxyTarget proxying generic interfaces (@yallie, #293)
  • Ignore minor/patch level version for AssemblyVersionAttribute as this creates binding errors for downstream libraries (@fir3pho3nixx, #288)
  • Fix DictionaryAdapter firing NotifyPropertyChang(ed/ing) events after CancelEdit (@Lakritzator, #299)
  • Fix ArgumentException when overriding method with nested generics (@BitWizJason, #297)
  • Explicit package versioning applied within solution to avoid maligned NuGet upgrades for lock step versioned packages. (@fir3pho3nixx, #292)

Deprecations

  • IChangeProxyTarget.ChangeProxyTarget is deprecated in favor of IProxyTargetAccessor.DynProxySetTarget (@yallie, #293)

@jonorossi jonorossi released this Jul 12, 2017 · 116 commits to master since this release

Assets 2

Bugfixes

  • Prevent member name collision when proxy implements same generic interface more than twice (@stakx, #88)
  • Fix incorrect replication (reversed order) of custom modifiers (modopts and modreqs) on the CLR, does not work yet on Mono (@stakx, #277)
  • Fix COM interface proxy error case throwing exceptions trying to release null pointer from QueryInterface (@stakx, #281)

@jonorossi jonorossi released this Jun 11, 2017 · 143 commits to master since this release

Assets 2

Breaking Changes

Enhancements

  • Add ProxyUtil.IsAccessible to check if a method is accessible to DynamicProxyGenAssembly2 (Blair Conrad, #235)
  • Refactor build engineering to support AppVeyor and TravisCI (@fir3pho3nixx, #241)

Bugfixes

  • Fix order of class proxy constructor arguments when using multiple mixins (@sebastienros, #230)
  • Fix dependency on "System.ComponentModel.TypeConverter" NuGet package version that does not exist (#239)
  • Fix ParamArrayAttribute not being replicated in proxy (@stakx, #121)
  • Fix System.Net.Mail.SmtpClient is obsolete on Mono warning (#254)

@jonorossi jonorossi released this Jan 24, 2017 · 218 commits to master since this release

Assets 3

Breaking Changes:

  • Update to NLog 4.4.1 and remove beta .NET Core support for NLog (#228)
  • Update to log4net 2.0.7 (#229)

Bugfixes:

Pre-release

@jonorossi jonorossi released this Oct 27, 2016

Assets 3

Breaking Changes

  • Rework Serilog integration to accept an ILogger rather than a LoggerConfiguration to work correctly with Serilog (#142, #211)
  • Remove obsolete property AttributesToAddToGeneratedTypes from ProxyGenerationOptions (#219)
  • Change type of ProxyGenerationOptions.AdditionalAttributes to IList<CustomAttributeInfo> (#219)
  • Remove IAttributeDisassembler which is no longer necessary (#219)

Enhancements

  • Add IProxyGenerator interface for the ProxyGenerator class (#215)
  • Improve default list of attributes to avoid replicating. Code Access Security attributes and MarshalAsAttribute will no longer be replicated (#221)

Bugfixes

  • Fix building on Mono 4.6.1
  • Different attributes in ProxyGenerationOptions.AdditionalAttributes now generates different proxy types (#219)
Pre-release

@jonorossi jonorossi released this Jul 17, 2016

Assets 2

This release supports .NET Core 1.0 via .NET Platform Standard 1.3. The logging integration packages are included in this release.

Full release notes will be available in the future.

Pre-release

@jonorossi jonorossi released this Apr 7, 2016

Assets 2

This release supports .NET Core. Only Castle.Core.dll is published which includes DynamicProxy and DictionaryAdapter, the logging integration assemblies are still a work in progress.

Full release notes will be available in the future.