102 lines
2.7 KiB
C#
102 lines
2.7 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Text;
|
||
|
||
#if NET45
|
||
using System.Web;
|
||
#else
|
||
using Microsoft.AspNetCore.Http;
|
||
#endif
|
||
|
||
namespace BotSharp.Channel.Weixin
|
||
{
|
||
public static class Server
|
||
{
|
||
private static string _appDomainAppPath;
|
||
public static string AppDomainAppPath
|
||
{
|
||
get
|
||
{
|
||
if (_appDomainAppPath == null)
|
||
{
|
||
#if NET45
|
||
_appDomainAppPath = HttpRuntime.AppDomainAppPath;
|
||
#else
|
||
_appDomainAppPath = AppContext.BaseDirectory; //dll所在目录:;
|
||
#endif
|
||
}
|
||
return _appDomainAppPath;
|
||
}
|
||
set
|
||
{
|
||
_appDomainAppPath = value;
|
||
#if NETSTANDARD1_6 || NETSTANDARD2_0 || NETCOREAPP2_0 || NETCOREAPP2_1
|
||
if (!_appDomainAppPath.EndsWith("/"))
|
||
{
|
||
_appDomainAppPath += "/";
|
||
}
|
||
#endif
|
||
}
|
||
}
|
||
|
||
private static string _webRootPath;
|
||
/// <summary>
|
||
/// wwwroot文件夹目录(专供ASP.NET Core MVC使用)
|
||
/// </summary>
|
||
public static string WebRootPath
|
||
{
|
||
get
|
||
{
|
||
if (_webRootPath == null)
|
||
{
|
||
#if NET45
|
||
_webRootPath = AppDomainAppPath;
|
||
#else
|
||
_webRootPath = AppDomainAppPath + "wwwroot/";//asp.net core的wwwroot文件目录结构不一样
|
||
#endif
|
||
}
|
||
return _webRootPath;
|
||
}
|
||
set { _webRootPath = value; }
|
||
}
|
||
|
||
public static string GetMapPath(string virtualPath)
|
||
{
|
||
if (virtualPath == null)
|
||
{
|
||
return "";
|
||
}
|
||
else if (virtualPath.StartsWith("~/"))
|
||
{
|
||
return virtualPath.Replace("~/", AppDomainAppPath);
|
||
}
|
||
else
|
||
{
|
||
return Path.Combine(AppDomainAppPath, virtualPath);
|
||
}
|
||
}
|
||
|
||
public static HttpContext HttpContext
|
||
{
|
||
get
|
||
{
|
||
#if NET45
|
||
HttpContext context = HttpContext.Current;
|
||
if (context == null)
|
||
{
|
||
HttpRequest request = new HttpRequest("Default.aspx", "http://sdk.weixin.senparc.com/default.aspx", null);
|
||
StringWriter sw = new StringWriter();
|
||
HttpResponse response = new HttpResponse(sw);
|
||
context = new HttpContext(request, response);
|
||
}
|
||
#else
|
||
HttpContext context = new DefaultHttpContext();
|
||
#endif
|
||
return context;
|
||
}
|
||
}
|
||
}
|
||
}
|