Skip to content

Reduce public API surface #389

@stakx

Description

@stakx

As noted in #193 (comment):

Castle library in general expose way too much publicly. Back in the old days of Castle especially with MonoRail everything was public by default and you'd be able to poke or extend things wherever you chose, pros and cons obviously.

I do however think we should start closing these things that are public [...].

The goal of this issue is to let us keep track of which types and type members should be removed from Core's publicly visible API in the next major version (and be marked as [Obsolete] even before that).

I suggest that we use posts for discussion and keep an up-to-date list of all decisions here at the top. If you have a better idea or format for this issue, please share!

Should be [Obsolete] in vNextMinor / removed from vNextMajor's public API:

(A check mark means that a member is already marked [Obsolete] in the master branch.)

  • Castle.Core.Internal.Lock (class)
  • Castle.Core.Internal.ILockHolder (interface)
  • Castle.Core.Internal.IUpgradeableLockHolder (interface)
  • Castle.DynamicProxy.Generators.BaseProxyGenerator.AddToCache (method)
  • Castle.DynamicProxy.Generators.BaseProxyGenerator.GetFromCache (method)
  • Castle.DynamicProxy.Generators.CacheKey (class)
  • Castle.DynamicProxy.Generators.DelegateProxyGenerationHook (type)
  • Castle.DynamicProxy.Generators.DelegateProxyGenerator (type)
  • Castle.DynamicProxy.Generators.Emitters.ArgumentsUtil.IsAnyByRef(ParameterInfo[])
  • Castle.DynamicProxy.IChangeProxyTarget.ChangeProxyTarget(object)
  • Castle.DynamicProxy.Internal.InternalsUtil
  • Castle.DynamicProxy.Internal.InternalsUtil.IsAccessible(this MethodBase)
  • Castle.DynamicProxy.Internal.InternalsUtil.IsInternal(this MethodBase)
  • Castle.DynamicProxy.Internal.InternalsUtil.IsInternalToDynamicProxy(this Assembly)
  • Castle.DynamicProxy.ModuleScope.DefineType (method)
  • Castle.DynamicProxy.ModuleScope.GetFromCache (method)
  • Castle.DynamicProxy.ModuleScope.Lock (property)
  • Castle.DynamicProxy.ModuleScope.RegisterInCache (method)
  • Castle.DynamicProxy.Serialization.CacheMappingsAttribute.GetDeserializedMappings (method)
  • Castle.DynamicProxy.Serialization.CacheMappingsAttribute.ApplyTo (method)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions