gpt4 book ai didi

c# - .NET 版本为 4 或更高时如何编译

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:10 25 4
gpt4 key购买 nike

我有一个来自项目 A (.NET 4) 的类,它使用 AggregateException 类。我现在将这个相同的类导入到 s.NET 3.5 的项目 B 中。 3.5 不存在 AggregateException 类。如果它所在的项目不是 .NET 4,是否有一种方法可以使用 #if 和反射或其他方法来忽略 catch(AggregateException)?

最佳答案

否 - 如果您想从 .NET 3.5 应用程序中使用它,您需要制作一个以 .NET 3.5 为目标的项目的单独版本。

您无法从 .NET 3.5 加载 .NET 4 程序集,即使您不使用 .NET 4 功能也是如此。

#if 指令可能唯一有用的地方是,如果您想将文件设置为具有基于平台目标的定义。这必须在您的项目 A 项目的文件内部发生,并且您需要两个项目(可能包含相同的源文件),因为无法将单个项目设置为针对两个单独的框架版本。 (你总是可以改变框架,但这并不总是微不足道的......)

话虽这么说,但无论如何,这可能无法直接起作用。如果您的 .NET 4 库正在捕获 AggregateException,这意味着它正在使用引发该异常的某些功能 - 该方法调用可能是 .NET 4 独有的功能,因为此异常是 .NET 4 中的新功能,并且通常只在使用 TPL 之类的东西时发生。

关于c# - .NET 版本为 4 或更高时如何编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8391348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com