我可以通过C#/Visual Studio中的预编译器指令检测网络连接吗?e、 g.#如果连接到网络
当我编码/测试时,我并不总是有网络连接,就像我在旅行(火车、航班等)时编码一样。我想设置一个预编译器条件,以便在未检测到连接时跳过一些代码。当然,我可以只处理错误,但我不希望这种逻辑成为代码库的一部分。有办法做到这一点吗?也许是宏 例如:我可以通过C#/Visual Studio中的预编译器指令检测网络连接吗?e、 g.#如果连接到网络,c#,visual-studio,visual-studio-2010,c-preprocessor,C#,Visual Studio,Visual Studio 2010,C Preprocessor,当我编码/测试时,我并不总是有网络连接,就像我在旅行(火车、航班等)时编码一样。我想设置一个预编译器条件,以便在未检测到连接时跳过一些代码。当然,我可以只处理错误,但我不希望这种逻辑成为代码库的一部分。有办法做到这一点吗?也许是宏 例如: #if ConnectedToNetwork PerformFunctionThatRequiresNetwork(); #else DoSomethingElseThatDoentRequireNetwork(); #endif 我不这么认
#if ConnectedToNetwork
PerformFunctionThatRequiresNetwork();
#else
DoSomethingElseThatDoentRequireNetwork();
#endif
我不这么认为。。。
最接近您想要的东西是一种能够动态交换文件的插件,但我认为这种东西不存在
我认为最好的办法是通过代理类来处理它。也就是说,为需要联网/非联网的功能创建一个接口,并实现两个不同的类。然后根据网络的配置或检测加载相应的处理程序类
嗯
马里奥你知道什么时候你没有网络吗?如果是这样的话,为什么不设置一个具有“无网络”设置的新生成定义,并在您知道没有网络的地方进行调试时使用它呢?我认为这比创建一个编程的预编译步骤要容易得多,因为这是一个开发问题 至于“我必须在预编译中这样做”,我将分离出调用网络的代码,并编译一个“非网络”版本。在编译步骤中,可以轻松地将其交换以进行调试,并绕过该问题
另一个问题是,这是否在运行时得到更好的服务。当用户没有网络时,是否也应该关闭网络位,或者您只是通过异常处理这种情况?您确定要进行编译时检查而不是运行时检查吗?顺便说一句,C没有预编译器。@John Saunders:对,“预处理器”不,它也没有预处理器。Microsoft称之为预处理器“预处理器指令”,这就是为什么我这样称呼它们。