Update Project

This commit is contained in:
2026-03-20 13:04:43 +02:00
parent 9b587e6cba
commit beae2dea89
2295 changed files with 251259 additions and 33 deletions
@@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using ModestTree;
namespace Zenject
{
[NoReflectionBaking]
public class InstanceProvider : IProvider
{
readonly object _instance;
readonly Type _instanceType;
readonly DiContainer _container;
readonly Action<InjectContext, object> _instantiateCallback;
public InstanceProvider(
Type instanceType, object instance, DiContainer container, Action<InjectContext, object> instantiateCallback)
{
_instanceType = instanceType;
_instance = instance;
_container = container;
_instantiateCallback = instantiateCallback;
}
public bool IsCached
{
get { return true; }
}
public bool TypeVariesBasedOnMemberType
{
get { return false; }
}
public Type GetInstanceType(InjectContext context)
{
return _instanceType;
}
public void GetAllInstancesWithInjectSplit(
InjectContext context, List<TypeValuePair> args, out Action injectAction, List<object> buffer)
{
Assert.That(args.Count == 0);
Assert.IsNotNull(context);
Assert.That(_instanceType.DerivesFromOrEqual(context.MemberType));
injectAction = () =>
{
object instance = _container.LazyInject(_instance);
if (_instantiateCallback != null)
{
_instantiateCallback(context, instance);
}
};
buffer.Add(_instance);
}
}
}