public static ScriptCollectionProxy CreateVirtualMachineAdapterProxy(this IFeaturingScripts target, Proxy parent)
        {
            ScriptCollectionProxy proxy = parent.Provider.CreateProxy <ScriptCollectionProxy>(parent.Mode);

            proxy.Target = target;
            return(proxy);
        }
        public static void UpdateFromVirtualMachineAdapterProxy(this IFeaturingScripts target, IScriptCollection value)
        {
            var cast = (ScriptCollectionProxy)value;

            if (value == null || cast.Target.VirtualMachineAdapter == null)
            {
                // Assigned null or a script collection proxy or record has no scripts
                target.VirtualMachineAdapter = null;
            }
            else
            {
                // Assign scripts of another record are assigned, make a copy
                target.VirtualMachineAdapter = (VirtualMachineAdapter)cast.Target.VirtualMachineAdapter.CopyField();
            }
        }