record ParameterOverride(string Name, object Value);
record Product(int productID);
public static void Main()
IContainer c = new Container();
var parameterOverrides = new[]
new ParameterOverride("productID", 8675309),
new ParameterOverride("objectWithData", "blah"),
var parameterRules = Parameters.Of;
foreach (var po in parameterOverrides)
parameterRules = parameterRules.Details((_, x) => x.Name.Equals(po.Name) ? ServiceDetails.Of(po.Value) : null);
c = c.With(rules => rules.With(parameters: parameterRules));
var s = c.Resolve<Product>();
Console.WriteLine(s.productID);