gpt4 book ai didi

c# - 在没有 System.Web.dll 的情况下,C# 库代码如何知道它的托管应用程序类型?

转载 作者:太空狗 更新时间:2023-10-29 18:07:44 27 4
gpt4 key购买 nike

我们正在 Windows 上使用 C# 和 .NET 4.0 在 Visual Studio 2010 中开发多个应用程序。两个 SilverLight 应用程序使用来自多个 WCF 项目的服务。另一个是控制台应用程序。

我们想将一些“通用”功能放在一个单独的库项目中,以便分解和重用代码。由于不同的文件路径处理,此库需要知道应用程序是像 WCF 服务一样托管(IIS、ASP.NET...)还是作为控制台应用程序运行。

谷歌搜索这个问题,人们指出使用 System.Web.dll 以了解代码是否托管,使用 HttpContext、HostingEnvironment.IsHosted...问题是这种方法需要包含对 System.Web 的引用。 Web int 库项目,如果此库将被具有客户端配置文件的控制台项目引用,则 Not Acceptable 。

想法是使用另一种不涉及使用 System.Web 程序集的技术。

最佳答案

如果您只需要获取包含应用程序的文件夹中文件的路径(如问题评论中所述),您可以使用:

Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "filename")

对于 ASP.NET 应用程序,这将是根文件夹(与 MapPath("~/"+ 文件名) 相同),对于控制台应用程序,它将是包含可执行文件的文件夹。

从评论到原始问题:

when running a as console application, just use the filename as a relative path

我不推荐使用相对路径。这将相对于当前工作目录,可能与应用程序目录不同。

关于c# - 在没有 System.Web.dll 的情况下,C# 库代码如何知道它的托管应用程序类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5154272/

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