我创建了一个方法,我通过telnet配置网络设备。问题是我有多个值,我使用foreach()
循环配置,但编译器正在跳过该循环。我正在使用C#WPF和模式是MVVM。这是我的代码:
public ObservableCollection<VLANSPropertyClass> vlan { get; set; }
public bool VLAN()
{
vlan = new ObservableCollection<VLANSPropertyClass>();
string _command;
_command = "config t \n";
WriteAPCommand(_command);
ReadAPCommand();
foreach(VLANSPropertyClass v in vlan)
{
Console.WriteLine("-----------------FOREACH STARTED----------------");
_command = "vlan " + v.vid + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "name " + v.vname + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "interface " + v.vid + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "ip address " + v.ip + " " + v.mask + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command="exit\r";
WriteAPCommand(_command);
ReadAPCommand();
_command = "interface " + v.vports + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "switchport access " + v.vid + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "copy runningconfig startupconfig\n";
WriteAPCommand(_command);
ReadAPCommand();
}
Console.WriteLine("-----------------FOREACH COMPLETED----------------");
return true;
}
VLANSProperty类是:
public class VLANSPropertyClass
{
public string vname { get; set; }
public int S_No { get; set; }
public string vid { get; set; }
public string ip { get; set; }
public string mask { get; set; }
public string vports { get; set; }
}
bool Vlan()函数出现在Model
中,它正在从ViewModel
调用。任何人都可以告诉我为什么我的代码没有正确执行。
答案 0 :(得分:1)
您正在创建新的ObservableCollection<VLANSPropertyClass>()
,但它是空的。因此,当您迭代它时,您永远不会在循环体中结束。您需要在某处填充您的集合,然后才能迭代它。 (你可能希望ReadAPCommand
填充它,但你还没有告诉我们任何相关信息。)
考虑一下您期望数据来自哪里,以及您希望它如何进入您的收藏。
您还应该仔细考虑您的属性和方法名称 - 目前它们都没有遵循正常的.NET约定,而您的VLAN
方法根本没有描述它对做的含义