在处理程序时,我最近发现.net中的主机名(或至少在ping类中)不应该超过126个字符.如果主机名更长,ping类将引发异常.
然而,维基百科声明最多允许255个字符.并且看起来确实存在主机名超过126个字符的计算机,所以问题是:这个限制是否可以更改,谁是正确的以及如果不能解析名称?
好吧,我尝试过最后几个小时而且我放弃了:我为移动设备开发(在Unitech HT660上赢得CE)并且发生了一件奇怪的事情:我尝试在我的PC上与服务进行通信而我正在使用TCPClient为了它.
除了一个大问题之外,这很好用:一旦我拔掉USB-Cable,我就用来在程序启动时从VS复制文件TCPClient抛出一个SocketException,因为目标机器主动拒绝它,所以不能建立套接字连接(不是这样,防火墙已关闭,未安装第三方且服务正在侦听)
并且它变得更奇怪:如果电缆插入并且我在程序连接后将其移除,一切工作都很好,我可以在没有电缆的情况下发送和接收数据,我可以在没有电缆的情况下连接.
顺便说一句:与MySQL .NET Connector的MySQLConnection相同.它适用于电缆,但如果在没有建立连接的情况下将其移除,则无法建立连接.
对此有什么想法吗?
提前致谢!
PS:有一件事我忘了提到:我使用无线连接到我的网络,IE以及使用服务和mysql数据库ping计算机就可以了.
好的,我迷路了.我从昨天开始搜索为什么我的数据绑定不能按预期工作.由于我是WPF和MVVM的新手,如果我不在同一项目中使用相同的方法和其他2个视图,那将是可以理解的.
基本配置是我有3个视图,对于所有这些视图,我将MainWindows-Constructor中的DataContext设置为负责的ViewModel.
视图模型本身不实现IPropertyChanged,但模型有一些嵌套对象.
我绑定以下XAML:
<TextBox Grid.Column="1" Grid.Row="0" Margin="1">
<TextBox.Text>
<Binding Path="Model.InsertLine.Destination.Value" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:MinMaxLengthValidatonRule Min="7" Max="7"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
InsertLine具有PropertyChanged:
public TLTMoveULLine InsertLine
{
get { return _insertline; }
internal set
{
_insertline = value;
if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("InsertLine"));
}
}
Run Code Online (Sandbox Code Playgroud)
对目标和单元的常规绑定有效.和验证一样.
但是我在某个时间点设置了一个新的插入行,在它插入ObeservableCollection(_document.Lines)之后.我期望发生的事情(以及其他2个视图中发生的事情)是文本框被清除.
public void AddLine()
{
_document.Lines.Add(InsertLine);
TLTMoveULLine newline = new TLTMoveULLine();
newline.Destination.Value = InsertLine.Destination.Value;
newline.Unit.Value = "";
InsertLine = newline;
}
Run Code Online (Sandbox Code Playgroud)
InsertLine上的属性被调用,但PropertyChanged委托为null.
有没有人知道为什么它是空的?相同的方法适用于2个单独的视图,但不适用于这个...
或者我有错误的想法,还有更好的方法吗?