public IStObjMutableReference AddNew(Type t, StObjRequirementBehavior behavior)
        {
            var m = new MutableReference(_owner, _kind)
            {
                Type = t, StObjRequirementBehavior = behavior
            };

            Add(m);
            return(m);
        }
 internal bool SetConfiguration(int setterSpecializationDepth, IActivityMonitor monitor, Type type, StObjRequirementBehavior behavior)
 {
     Debug.Assert(_maxSpecializationDepthSet != Int32.MaxValue);
     if (setterSpecializationDepth < _maxSpecializationDepthSet)
     {
         monitor.Error($"'{this}' has already been set or configured through a more specialized object.");
         return(false);
     }
     _maxSpecializationDepthSet = setterSpecializationDepth;
     Value = System.Type.Missing;
     Type  = type;
     StObjRequirementBehavior = behavior;
     UseValue = false;
     return(true);
 }