Initial Commit
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using ModestTree;
|
||||
|
||||
namespace Zenject
|
||||
{
|
||||
[NoReflectionBaking]
|
||||
public class SingleProviderBindingFinalizer : ProviderBindingFinalizer
|
||||
{
|
||||
readonly Func<DiContainer, Type, IProvider> _providerFactory;
|
||||
|
||||
public SingleProviderBindingFinalizer(
|
||||
BindInfo bindInfo, Func<DiContainer, Type, IProvider> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user