0
我有獲取虛擬機網絡連接並檢索連接的交換機信息的代碼。VMWare SDK C#VirtualMachine接口類型
我的代碼似乎適用於「VirtualEthernetCardNetworkBackingInfo」類型的接口,但是當服務器連接到VD交換機時會失敗,因爲在該方案中需要使用「VirtualEthernetCardDistributedVirtualPortBackingInfo」類型。
問題是,在嘗試轉換對象之前,如何檢測接口類型?或者應該只是試着去看看哪一個可以工作?
這是代碼我有,但我在尋找的東西清潔...
bool vswitch = false, vds = false;
VirtualEthernetCard _workloadnic = (VirtualEthernetCard)_virtualdevice;
//first check if the VM is connected to a vswitch
try
{
VirtualEthernetCardNetworkBackingInfo _nic_backing = (VirtualEthernetCardNetworkBackingInfo)_workloadnic.Backing;
network_moid = _nic_backing.Network.Value;
vswitch = true;
}
catch (Exception ex) { }
//if it was not a vswitch it should be a vds
if (!vswitch)
{
try
{
VirtualEthernetCardDistributedVirtualPortBackingInfo _nic_backing = (VirtualEthernetCardDistributedVirtualPortBackingInfo)_workloadnic.Backing;
network_moid = _nic_backing.Port.SwitchUuid
vds = true;
}
catch (Exception ex) { }
}
if (!vswitch || !vds)
{
Logger.log(String.Format("UpdateVMwareWorkload: Could not determine workload network backing type"), Logger.Severity.Error);
}