private void CacheComplete(IResolverContext context, IDependencyResolver resolver) { if (context.IsSingletonLifetime()) { DependencyTableHelper.AddScoped(_dependencyTable, context, null); } if (context.IsScopedLifetime()) { DependencyTableHelper.AddScoped(_dependencyTable, context, resolver); } }
/// <summary> /// 从缓存中读取作用域值 /// </summary> internal static bool TryGetScoped(this IDependencyTable dependencyTable, IResolverContext context, IDependencyResolver resolver, out Object value) { return(dependencyTable.ScopedTable.TryGetValue(DependencyTableHelper.GetScopedKey(context, resolver), out value)); }
internal static void AddScoped(this IDependencyTable dependencyTable, IResolverContext context, IDependencyResolver resolver) { dependencyTable.ScopedTable.Add(DependencyTableHelper.GetScopedKey(context, resolver), context.CompleteValue); }
public void Resolver(IResolverContext context, IDependencyResolver resolver) { context.Complete = DependencyTableHelper.TryGetCompileValue(_dependencyTable, context, resolver); }