【问题标题】:How to know what obsolete methods/API's are replaced with如何知道哪些过时的方法/API 被替换为
【发布时间】:2013-05-22 09:28:58
【问题描述】:

我正在尝试了解套接字,Google 上的第一个结果提供了一些有关解析 IP 地址的源代码。在 VS2010 中输入此代码时,我看到它已折旧的消息。

然后我访问MSDN网站了解更多信息,它确实在贬值。

http://msdn.microsoft.com/en-us/library/system.net.dns.resolve%28v=vs.110%29.aspx

该页面没有帮助,因为它没有告诉我是否建议了不同的方法(即,新的或替代的命名空间/方法等)。

有谁知道替代方案是什么?

编辑

Intellisense 没有告诉我:

【问题讨论】:

  • 编译器警告不应该告诉这个吗?
  • @JeffRSon,天哪,是的,你是对的,但不是在写它的时候。如果你把它写出来,那么智能感知会告诉你它只是贬值了。如果你完成了代码,然后将鼠标悬停在它上面,它就会告诉你要使用什么!例如,如果您输入 Dns.Resolve 则不,它不会,但如果您输入 Dns.Resolve("localhost"); 则它会。
  • @DaveRook:您的编辑:那不是编译器。那就是智能感知。编译是指按下ctrl-shift-B(或选择菜单选项)来编译应用程序。
  • 啊,谢谢@SaniHuttunen,我会更新我的帖子

标签: c# .net dns


【解决方案1】:

来自链接:

[ObsoleteAttribute("Resolve is obsoleted for this type, please use GetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202")]

如您所见,它指的是GetHostEntry

编译时,您还应该收到带有上述消息的警告。

【讨论】:

  • 我没有通读语法,只是没想到答案会在里面。我问了一个多么愚蠢的问题。谢谢,这就是答案。关于编译器警告,请参阅我在 OP 中的 cmets - 只有在您完整写出之后才会给我答案!
  • 是的,但是在编译的时候你必须把它完整地写出来,否则你会得到一个编译器错误。正如您所发现的,您还可以通过将鼠标悬停在方法上来在编译之前看到警告消息。
  • 是的,这就是我所经历的(根据我对我的 OP 的编辑)。它没有给我足够的。无论如何,谢谢你
【解决方案2】:

您在编译时看到的消息应该包含您需要的信息。

在这种情况下,它应该显示Resolve is obsoleted for this type, please use GetHostEntry instead.

所以它告诉你使用GetHostEntry

【讨论】:

  • 是的,你是对的,但编译器在代码完全编写完成之前不会发出警告(请参阅我的编辑)。在编译器给我之前,我实际上必须写像Dns.Resolve("");这样的东西
【解决方案3】:

Dns.Resolve 方法

.NET 框架 4.5

其他版本

2 人中有 1 人评价此内容有帮助 - 评价此主题

注意:此 API 现在已过时。

将 DNS 主机名或 IP 地址解析为 IPHostEntry 实例。

命名空间:System.Net 程序集:系统(在 System.dll 中)

语法


C#

C++

F#

VB

复制

[ObsoleteAttribute("Resolve对于这种类型已经过时,请使用 GetHostEntry 代替。 http://go.microsoft.com/fwlink/?linkid=14202")] public static IPHostEntry Resolve(string hostName)

参数hostNameType:System.String

DNS 样式的主机名或 IP 地址。

返回值类型:System.Net.IPHostEntry 一个 IPHostEntry 实例 包含有关 hostName 中指定的主机的地址信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多