如何在类库项目中使用Server.MapPath

dot*_*oob 10 c# asp.net server.mappath

我有一个Web应用程序,它有许多类库项目.下面是一些示例代码.

public static class LenderBL
{
    static string LenderXml { get { return "MyPathHere"; } }

    public static LenderColl GetLenders()
    {
        var serializer = new XmlSerializer(typeof(LenderColl));

        using (XmlReader reader = XmlReader.Create(LenderXml))
        {
            return (LenderColl)serializer.Deserialize(reader);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我通常会使用Server.MapPath来获取属性LenderXml的路径,但是当我在类库中使用它时,它将返回父解决方案的路径,而不是类库项目的路径.

有没有办法获得类库项目本身的路径?

提前致谢.

Fre*_*cer 29

    var Mappingpath = System.Web.HttpContext.Current.Server.MapPath("pagename.aspx");
Run Code Online (Sandbox Code Playgroud)

希望它有所帮助.

  • 不仅需要指定System.Web库,还需要引用它. (2认同)

Men*_*gis 12

据我所知,您需要当前的装配位置

static public string CurrentAssemblyDirectory()
{
    string codeBase = Assembly.GetExecutingAssembly().CodeBase;
    UriBuilder uri = new UriBuilder(codeBase);
    string path = Uri.UnescapeDataString(uri.Path);
    return Path.GetDirectoryName(path);
}
Run Code Online (Sandbox Code Playgroud)

  • 这是我发现的唯一可在类库和Web应用程序中同时使用的解决方案。谢谢 (2认同)