public IVirtualEthernetSwitch DefineSystem(IVirtualEthernetSwitchSettingData systemSettings, IEnumerable <IEthernetPortAllocationSettingData> resourceSettings, IVirtualSystemSettingData referenceConfiguration)
 {
     using (ManagementBaseObject methodParameters = this._Instance.GetMethodParameters(nameof(DefineSystem)))
     {
         methodParameters["SystemSettings"]   = (object)((IWMICommon)systemSettings).Object.GetText(TextFormat.WmiDtd20);
         methodParameters["ResourceSettings"] = (object)resourceSettings.Select <IEthernetPortAllocationSettingData, string>((Func <IEthernetPortAllocationSettingData, string>)(rs => ((IWMICommon)rs).Object.GetText(TextFormat.WmiDtd20))).ToArray <string>();
         using (ManagementBaseObject managementBaseObject = this._Instance.InvokeAndWait(nameof(DefineSystem), methodParameters))
             return(VirtualEthernetSwitch.CreateFromManagementObject(new ManagementObject((string)managementBaseObject["ResultingSystem"])));
     }
 }
        public IEnumerable <IResourceAllocationSettingData> AddResourceSettings(IVirtualEthernetSwitchSettingData affectedConfiguration, string[] resourceSettings)
        {
            ManagementBaseObject inParams = this._Instance.GetMethodParameters(nameof(AddResourceSettings));

            try
            {
                inParams["AffectedConfiguration"] = (object)((IWMICommon)affectedConfiguration).Object.Path.Path;
                inParams["ResourceSettings"]      = (object)resourceSettings;
                ManagementBaseObject result = this._Instance.InvokeAndWait(nameof(AddResourceSettings), inParams);
                try
                {
                    if (result["ResultingResourceSettings"] != null)
                    {
                        string[] strArray = (string[])result["ResultingResourceSettings"];
                        for (int index = 0; index < strArray.Length; ++index)
                        {
                            yield return(ResourceAllocationSettingData.CreateFromPath(strArray[index], this.Scope));
                        }
                        strArray = (string[])null;
                    }
                    else if (result["Job"] != null)
                    {
                        foreach (ManagementObject o in ((ManagementObject)result["Job"]).GetRelated((string)null, "Msvm_AffectedJobElement", (string)null, (string)null, (string)null, (string)null, false, (EnumerationOptions)null))
                        {
                            yield return(ResourceAllocationSettingData.CreateFromObject(o));
                        }
                    }
                }
                finally
                {
                    if (result != null)
                    {
                        result.Dispose();
                    }
                }
                result = (ManagementBaseObject)null;
            }
            finally
            {
                if (inParams != null)
                {
                    inParams.Dispose();
                }
            }
            inParams = (ManagementBaseObject)null;
        }