If I'm understanding correctly you want to keep your design time configuration which configures a property with an array of dependencies and at runtime add another dependency in addition to the dependencies in the configuration file.
I don't think that Unity supports this "merging" of dependency configuration between config file and code. (It would be nice if someone can refute that!)
If you call RegisterType from code with a new array dependency it will overwrite the configured information with the new dependency. The property array dependencies to inject into the object is stored deep within the container's private policies so
there is no way to directly access and modify these values. You could potentially use reflection to try to achieve that but that would be brittle and not recommended.
The only way I can think of to do what I think you want is to resolve the object, extract the injected objects, add the new array item and re-register the type with the container. Something like:
var container = new UnityContainer().LoadConfiguration();
var service = container.Resolve<Service>();
var items = service.Items;
// this has 2 items
var newItems = new List<Base>(items);
// now add a 3rd
var prop = new InjectionProperty("Items", new ResolvedArrayParameter<Base>(newItems.ToArray()));
Only the Items property should have it's properties modified. E.g. if there was another property called "Items2" in the config file it's configuration would not be lost..
With all that said, I believe the best approach would be to standardize on one approach to configure the container. I realize that it could be a bit of work to convert configuration files to code but it should result in an application that is easier
to understand, easier to maintain, and harder to break.
Enterprise Library support engineer