public ProxyRepository(Options options, ISubdependency simpleDependency)
     : base(
         // A simple dependency is injected to us automatically - we only need to register it
         simpleDependency,
         // A complex dependency comes through the non-generic, carefully registered Options type
         options?.ComplexSubdependency ?? throw new ArgumentNullException(nameof(options)),
         // Configuration data comes through the Options type as well
         options.ConnectionString)
 {
 }
 /// <summary>
 /// Fluently sets the given subdependency, allowing to options object to be mutated and returned as a single expression.
 /// </summary>
 internal Options WithSubdependency(ISubdependency subdependency)
 {
     this.ComplexSubdependency = subdependency ?? throw new ArgumentNullException(nameof(subdependency));
     return(this);
 }
 public RootB(ISubdependency subdependency)
 {
 }