コード例 #1
0
 public SupportContextServiceScope(SupportContextServiceProvider parent, IServiceScope scope)
 {
     if (parent == null)
     {
         throw new ArgumentNullException(nameof(parent));
     }
     _scope          = scope ?? throw new ArgumentNullException(nameof(scope));
     ServiceProvider = new SupportContextServiceProvider(scope.ServiceProvider, parent);
 }
コード例 #2
0
 public SupportContextServiceProvider(IServiceProvider provider, SupportContextServiceProvider parent) : this()
 {
     _provider = provider ?? throw new ArgumentNullException(nameof(provider));
     Parent    = parent;
     Root      = parent?.Root ?? this;
     Id        = CreateId();
     if (!ServiceContext.Push(this))
     {
         throw new InvalidOperationException();
     }
 }
コード例 #3
0
 public bool IsMyParent(SupportContextServiceProvider provider)
 {
     for (var parent = Parent;
          parent != null;
          parent = parent.Parent)
     {
         if (ReferenceEquals(parent, provider))
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #4
0
 public SupportContextServiceScopeFactory(SupportContextServiceProvider provider, IServiceScopeFactory factory)
 {
     _provider = provider ?? throw new ArgumentNullException(nameof(provider));
     _factory  = factory ?? throw new ArgumentNullException(nameof(factory));
 }
コード例 #5
0
 public ServiceProviderAccessor(SupportContextServiceProvider provider)
 {
     _provider = provider;
     _id       = provider?.Id ?? -1;
 }