private object ExecuteFactory(IDependencyFactoryInfo info, IList <Parameter> parameters)
 {
     if (parameters == null || parameters.Count == 0)
     {
         return(_dependencyFactory.Resolve(info.CreateContext(Ioc.Container)));
     }
     if (TryGetNamedParameters(parameters, out (string, object)[] namedParameters))
     {
         return(_dependencyFactory.Resolve(info.CreateContext(Ioc.Container).SetArguments(namedParameters)));
     }
     if (TryGetPositionalParameters(parameters, out object[] positionalParameters))
Exemple #2
0
        protected override void OnRegisterFactorySingleton(IDependencyFactoryInfo info, IDependencyFactory factory)
        {
            if (info.IsFactoryGeneric())
            {
            }
            else
            {
                foreach (var resolveType in info.ResolvedTypes)
                {
                    _services.AddSingleton(resolveType, p => factory.Resolve(info.CreateContext(Ioc.Container)));
                }
            }

            base.OnRegisterFactorySingleton(info, factory);
        }