Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何基于框架执行不同的操作?(ASP.NET 5)_C#_Asp.net_.net_Migration_Asp.net Core - Fatal编程技术网

C# 如何基于框架执行不同的操作?(ASP.NET 5)

C# 如何基于框架执行不同的操作?(ASP.NET 5),c#,asp.net,.net,migration,asp.net-core,C#,Asp.net,.net,Migration,Asp.net Core,假设您必须将一个C#应用程序从.NET framework迁移到新的.NET核心,因为您想拥有一些新功能 您有自己的代码库,并且希望一次获得完全工作的部分,因为一次迁移所有部分将需要大量的工作。其主要思想是在未来完全成为核心 我的问题是: 有没有一种方法可以检查一个框架中存在的功能,而另一个框架中没有?或者根据框架执行不同的操作 有编译器指令(#if)用于检查与两个框架对应的符号。而且也可以针对这两个框架 例如,如果您的代码使用的资源不是.NET Core的一部分,您可以将它们包围在条件编译指

假设您必须将一个C#应用程序从.NET framework迁移到新的.NET核心,因为您想拥有一些新功能

您有自己的代码库,并且希望一次获得完全工作的部分,因为一次迁移所有部分将需要大量的工作。其主要思想是在未来完全成为核心

我的问题是:

  • 有没有一种方法可以检查一个框架中存在的功能,而另一个框架中没有?或者根据框架执行不同的操作

编译器指令(#if)用于检查与两个框架对应的符号。而且也可以针对这两个框架

例如,如果您的代码使用的资源不是.NET Core的一部分,您可以将它们包围在条件编译指令中

编译器指令的使用示例

#if DNX451
    // Do something
#elif DNXCORE50
    // Do something
#else
#error No implementation for this target
# endif
其中,
DNX451
表示.NET框架,
DNXCORE50
表示.NET核心


看看他们的行动。

为什么没有意义?我真的不明白你的问题是什么。对不起,我的意思是,有没有一种方法可以检查一个框架中的功能,而不是另一个框架中的功能?将编辑我的问题。这不是我所知道的,只是尝试为每个目标编译,看看什么是有效的。如果发现某些代码不适用于特定框架,则可以使用编译器预处理器指令为特定框架编译特定代码段,如图所示。如果您使用的是Visual Studio,那么Intellisense可能也会给您一些提示。谢谢!。我建议您观看今年和去年的Build、TechEd、DotNetConf和Ignite事件中讨论.NET的一些视频。一些视频演示了如何使用这些指令。这些视频大多可以在YouTube和第9频道上看到。这些假设似乎不起作用。。。对于我来说,#else部分始终处于活动状态,即使在导航栏中切换FWK时,以及在编译时也是如此#如果DNX451常数int I=3#elif DNXCORE50常数int I=2#else const int I=1#如果名字好像变了。DNX451是NET451。s DNXCORE5是DOTNET5_4。答案中的第一个链接已断开。