Asp.net mvc 5 httpcontext和httpcontextbase之间需要一个公共对象
我正在使用基于asp.NETMVC5和asp.NETWebAPI2OWIN的web应用程序。 第一个是网站,第二个是后端api 我需要分享一些图书馆, 在asp.net mvc应用程序中,我可以访问HttpContextBase.Request,它是HttpBaseRequest 在web.api中,可以访问httpContext.Request,该请求是HttpRequestAsp.net mvc 5 httpcontext和httpcontextbase之间需要一个公共对象,asp.net-mvc-5,asp.net-web-api2,Asp.net Mvc 5,Asp.net Web Api2,我正在使用基于asp.NETMVC5和asp.NETWebAPI2OWIN的web应用程序。 第一个是网站,第二个是后端api 我需要分享一些图书馆, 在asp.net mvc应用程序中,我可以访问HttpContextBase.Request,它是HttpBaseRequest 在web.api中,可以访问httpContext.Request,该请求是HttpRequest 计划在将来升级到asp.net core,在我的类库中共享公共对象的最佳方式是什么?您可以定义一个表示访问httpco
计划在将来升级到asp.net core,在我的类库中共享公共对象的最佳方式是什么?您可以定义一个表示访问httpcontext的接口,但无需将其绑定到任何特定的http相关类型 然后,提供特定于您的库和应用程序正在处理的框架的实现。net framework和.net mvc以及dotnet core分别为http内容、请求和响应定义了不同的实现 e、 g 然后,暴露你所需要的。e、 g.GetRequestPath、WriteToResponse、GetHeader、SetCookie。等等,这将是大量的和正在进行的工作,但结果是,您的netstandard库(顺便说一句,其中一个应该承载您的接口)不会关心实施。显然,您必须将特定http对象的所有用法替换到接口中 因此,IMyHttpContext将转到一个新的netstandard程序集。该程序集将与所有dotnet框架一起工作 Net4HttpContext转到net45程序集,其本身引用System.Webb。您仅通过windows、.net framework应用程序引用此应用程序 NetCoreHttpContext转到dotnetcore或netstandard程序集,引用dotnetcore的http相关nuget包。将此应用程序与dotnet核心应用程序一起使用 然后,在整个应用程序中,无论是net45还是netcore,再加上一些DI设置,您只参考您的界面。实现可以被注入 祝你好运
interface IMyHttpContext
class Net4HttpContext : IMyHttpContext
class NetCoreHttpContext : IMyHttpContext