<PackageReference Include="Castle.Core" Version="5.1.1" />

BaseInterfaceProxyGenerator

protected readonly Type proxyTargetType

protected abstract bool AllowChangeTarget { get; }

protected abstract string GeneratorType { get; }

protected BaseInterfaceProxyGenerator(ModuleScope scope, Type targetType, Type[] interfaces, Type proxyTargetType, ProxyGenerationOptions options)

protected abstract void AddMappingForAdditionalInterfaces(CompositeTypeContributor contributor, Type[] proxiedInterfaces, IDictionary<Type, ITypeContributor> typeImplementerMapping, ICollection<Type> targetInterfaces)

protected virtual ITypeContributor AddMappingForTargetType(IDictionary<Type, ITypeContributor> typeImplementerMapping, Type proxyTargetType, ICollection<Type> targetInterfaces, INamingScope namingScope)

protected abstract CompositeTypeContributor GetProxyTargetContributor(Type proxyTargetType, INamingScope namingScope)

protected virtual IEnumerable<Type> GetTypeImplementerMapping(Type proxyTargetType, out IEnumerable contributors, INamingScope namingScope)

protected virtual Type Init(string typeName, out ClassEmitter emitter, Type proxyTargetType, out FieldReference interceptorsField, IEnumerable<Type> allInterfaces)