小编Rob*_*van的帖子

指定在.NET中用于解析主机名的DNS服务器

我想知道是否有办法强制System.Net.Dns类使用一组自定义DNS服务器来解析主机名,而不是使用与主网络连接相关联的服务器.

我怀疑这只能使用像DnDns(http://dndns.codeplex.com)这样的自定义库,但我希望这可以在.NET中完成.

.net c# dns networking

13
推荐指数
2
解决办法
8173
查看次数

.NET 4.0中的代码契约,对于非可空引用类型的粉丝来说,没有什么乐趣?

我一直在玩VS2008上的Code Contracts(http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx).
它们肯定很好,并为方法中的if-then-throw检查提供了一个可靠的替代方案.

尽管如此,我一直希望他们能够满足我对非可空引用类型的强烈感受.
唉,从我所看到的情况来看似乎并非如此.
这就是我的理解:

  • 这样的事情仍会在运行时引起问题:
    MyClass a = null;
    a.ToString();

  • 我仍然必须明确地写支票,即使是以更简洁和简化的方式.

  • 除非您使用VS Team System,否则您只能使用代码契约在运行时检查事物,在编译时没有任何好处.
    这意味着当出现问题时你仍然需要处理事情.
    与处理简单异常没什么不同.

  • 即使使用VSTS,静态分析也不如在运行时完成的那样好.
    这是完全可以理解的,但这仍然是该功能用于运行时使用的另一个标志.

如果我错了,请纠正我,但从我看到的情况来看,Code Contracts无法使我的生活变得更轻松,而且我的程序更加健壮,就像非可空引用类型一样.

不要误会我的意思,我不喜欢代码合同.
它们是整个框架的一个非常好的增强.
只是如果这没有填补C#通过没有非可空引用类型而离开的空白,此时我担心什么都不会.
你怎么看?

.net c# .net-4.0 code-contracts c#-4.0

9
推荐指数
1
解决办法
1296
查看次数

迭代方法的参数以进行验证

我一直在想能够做这样的事情是有用的,例如,检查空引用的参数并最终抛出异常.
这将节省一些打字,并且如果添加新参数,也将无法忘记添加检查.

.net c# null

8
推荐指数
1
解决办法
1万
查看次数

Visual Studio 2012 - 有效地查找循环引用

目前,如果我想在我选择的解决方案中检查循环引用Architecture - Generate Dependency Graph - For Solution.然后从我打开的新选项卡中选择Layout - Analyzers - Circular References Analyzer.最后,如果我从单个程序集向下钻取并且有循环引用,我可以在图表上看到它们以红色突出显示,它们也在错误列表中显示为警告.

由于我打算在相同类的方法之间发现循环引用,因此在适度大的代码库上这非常容易出错且耗时.

我想知道是否有一种方法可以立即获取所有警告,而无需扩展节点或者可能打开父节点的突出显示,这样我就可以只查看肯定包含循环引用的汇编.

NDepend应该能够提供帮助,但我更喜欢让事情变得尽可能简单,所以我总是对采用其他工具持谨慎态度.

.net circular-dependency circular-reference visual-studio visual-studio-2012

8
推荐指数
1
解决办法
6451
查看次数

无法使ListBox和UpdateTarget工作

以下是XAML文件的相关部分:

xmlns:local="clr-namespace:BindingTest"
<ListBox x:Name="myList"
         ItemsSource="{Binding Source={x:Static local:MyClass.Dic},
                               Path=Keys,
                               Mode=OneWay,
                               UpdateSourceTrigger=Explicit}">
</ListBox>
Run Code Online (Sandbox Code Playgroud)

MyClass是一个公共静态类,Dic是一个静态公共属性,一个Dictionary.

在某一点上,我将项添加到Dictionary并希望ListBox反映更改.
这是我想要使用的代码,但它不起作用:

BindingExpression binding;
binding = myList.GetBindingExpression(ListBox.ItemsSourceProperty);
binding.UpdateTarget();
Run Code Online (Sandbox Code Playgroud)

相反,此代码有效:

myList.ItemsSource = null;
myList.ItemsSource = MyClass.dic.Keys;
Run Code Online (Sandbox Code Playgroud)

我更喜欢使用UpdateTarget,但我不能让它工作.
我究竟做错了什么?

.net c# data-binding wpf listbox

6
推荐指数
1
解决办法
2407
查看次数

寻找一种更优雅的方法来检查可以为空的值类型

要检查值类型是否可为空,我现在正在执行以下操作:

int? i = null;
bool isNullable = i.GetType().ToString().Contains("System.Nullable");
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

c# nullable value-type

4
推荐指数
2
解决办法
260
查看次数