using System; using ModestTree; namespace Zenject { [NoReflectionBaking] public class SingleProviderBindingFinalizer : ProviderBindingFinalizer { readonly Func _providerFactory; public SingleProviderBindingFinalizer( BindInfo bindInfo, Func providerFactory) : base(bindInfo) { _providerFactory = providerFactory; } protected override void OnFinalizeBinding(DiContainer container) { if (BindInfo.ToChoice == ToChoices.Self) { Assert.IsEmpty(BindInfo.ToTypes); RegisterProviderPerContract(container, _providerFactory); } else { // Empty sometimes when using convention based bindings if (!BindInfo.ToTypes.IsEmpty()) { RegisterProvidersForAllContractsPerConcreteType( container, BindInfo.ToTypes, _providerFactory); } } } } }