public static ICommonEthernetPortSettingData CreateFromObject(ManagementObject mo) { string a = (string)mo["__Class"]; if (string.Equals(a, "Msvm_SyntheticEthernetPortSettingData", StringComparison.InvariantCultureIgnoreCase)) { return(SyntheticEthernetPortSettingData.CreateFromManagementObject(mo)); } if (string.Equals(a, "Msvm_EmulatedEthernetPortSettingData", StringComparison.InvariantCultureIgnoreCase)) { return(EmulatedEthernetPortSettingData.CreateFromManagementObject(mo)); } throw new HyperVException("I don't know how to handle an Ethernet port setting data of type " + a); }
public static IEnumerable <ICommonEthernetPortSettingData> GetRelated(IVirtualSystemSettingData vssd) { ManagementObjectCollection adapters = vssd.Object.GetRelated("CIM_EthernetPortAllocationSettingData"); try { foreach (ManagementObject managementObject in adapters) { ManagementObject adapter = managementObject; if ((int)(ushort)adapter["ResourceType"] != 10) { adapter.Dispose(); } else { string adapterClass = (string)adapter["__Class"]; if (string.Equals(adapterClass, "Msvm_SyntheticEthernetPortSettingData", StringComparison.InvariantCultureIgnoreCase)) { yield return(SyntheticEthernetPortSettingData.CreateFromManagementObject(adapter)); } else { if (!string.Equals(adapterClass, "Msvm_EmulatedEthernetPortSettingData", StringComparison.InvariantCultureIgnoreCase)) { throw new HyperVException("I don't know how to handle an Ethernet port setting data of type " + adapterClass); } yield return(EmulatedEthernetPortSettingData.CreateFromManagementObject(adapter)); } adapterClass = (string)null; } adapter = (ManagementObject)null; } } finally { if (adapters != null) { adapters.Dispose(); } } adapters = (ManagementObjectCollection)null; }