# Pure.NETCoreExtentensions

https://github.com/purestackorg/Pure.NETCoreExtensions

NET Core 拓展方法和中间件集合(支持NET Core2.0+)

包含拓展方法:
DistributedCacheExtensions
ConfigurationExtensions
CookiesExtensions
ServiceCollectionExtensions
EnvironmentExtensions
HttpContextExtensions
HttpRequestExtentions
FormFileExtentions
HeaderDictionaryExtensions
DefaultIdentityUserClaimsExtensions
LoggerFactoryExtensions
UrlHelperExtensions
SmtpEmailSenderExtensions
WebHostBuilderExtensions
ApplicationBuilderExtensions

包含中间件:
FriendlyExceptionsMiddleware
HtmlMinificationMiddleware
HttpExceptionMiddleware
InternalServerErrorOnExceptionMiddleware
NoServerHttpHeaderMiddleware
ClientRateLimitMiddleware
IpRateLimitMiddleware
StatisticsMiddleware

常用基类:
BaseController
BaseControllerWithIdentity
TokenBucketLimitingService
LeakageBucketLimitingService
Platform

 

使用说明:

1.引用相关包:

<PackageReference Include=”Microsoft.AspNetCore.Http” Version=”2.0.3″ />
<PackageReference Include=”Microsoft.AspNetCore.Identity” Version=”2.0.3″ />
<PackageReference Include=”Microsoft.AspNetCore.Mvc” Version=”2.0.4″ />
<PackageReference Include=”Microsoft.AspNetCore.StaticFiles” Version=”2.0.3″ />
<PackageReference Include=”Microsoft.Extensions.Configuration” Version=”2.0.2″ />
<PackageReference Include=”Microsoft.Extensions.Configuration.FileExtensions” Version=”2.0.2″ />
<PackageReference Include=”Microsoft.Extensions.Configuration.Json” Version=”2.0.2″ />
<PackageReference Include=”Microsoft.Extensions.Identity.Stores” Version=”2.0.3″ />
<PackageReference Include=”Microsoft.Extensions.Options.ConfigurationExtensions” Version=”2.0.2″ />

2.引用命名空间

using Pure.NetCoreExtensions

3.配置 Startup.cs 文件

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=HelloWorld}/{action=Index}/{id?}");
            });
            


            //global middleware
            app.UseGlobalHostingEnvironment(env)
                .UseGlobalHttpContext()
                .UseGlobalLoggerFactory()
                .UseGlobalErrorHandling()
               ; 

         
            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }
        

 

4.完成 !

 

下面测试代码和截图:

@{
    ViewData["Title"] = "Index";
    Layout = "_Layout";
}
@using Pure.NetCoreExtensions;
<h2>Hello World!</h2>
@DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")

<h3>Config</h3>
<p>
    ConnectionString: @ConfigurationManager.Configuration.GetConnectionString()
</p>
<h3>AppSetting</h3>
<p>
    <table>
        <tr>
            <td>Key1</td>
            <td> @ConfigurationManager.AppSettings["Key1"]</td>
        </tr>
        <tr>
            <td>Key2</td>
            <td> @ConfigurationManager.AppSettings["Key2"]</td>
        </tr>
        <tr>
            <td>Key2</td>
            <td> @ConfigurationManager.AppSettings["Key3"]</td>
        </tr>
    </table>

</p>


<h3>Env</h3>
<p>
    <table>
        <tr>
            <td>ApplicationName</td>
            <td> @GlobalHostEnvironment.ApplicationName </td>
        </tr>
        <tr>
            <td>ContentRootPath</td>
            <td> @GlobalHostEnvironment.ContentRootPath </td>
        </tr>
        <tr>
            <td>EnvironmentName</td>
            <td> @GlobalHostEnvironment.EnvironmentName </td>
        </tr>
        <tr>
            <td>WebRootPath</td>
            <td> @GlobalHostEnvironment.WebRootPath </td>
        </tr>

    </table>

</p>


<h3>Platform</h3>
<p>
    <table>
        <tr>
            <td>OS</td>
            <td> @Platform.OS </td>
        </tr>
        <tr>
            <td>Is64BitOperatingSystem</td>
            <td> @Platform.Is64BitOperatingSystem </td>
        </tr>
        <tr>
            <td>OSDescription</td>
            <td> @Platform.OSDescription </td>
        </tr>
        <tr>
            <td>OSArchitecture</td>
            <td> @Platform.OSArchitecture </td>
        </tr>
        <tr>
            <td>ProcessArchitecture</td>
            <td> @Platform.ProcessArchitecture </td>
        </tr>
        <tr>
            <td>RuntimeType</td>
            <td> @Platform.RuntimeType </td>
        </tr>


    </table>

</p>



<h3>HttpContext</h3>
<p>
    <table>
        <tr>
            <td>Current</td>
            <td> @GlobalHttpContext.Current   </td>
        </tr>
        <tr>
            <td>Request.GetClientIpAddress </td>
            <td> @GlobalHttpContext.Current.Request.GetClientIpAddress()   </td>
        </tr>
        <tr>
            <td>Request.IsLocalRequest </td>
            <td> @GlobalHttpContext.Current.Request.IsLocalRequest()   </td>
        </tr>
        <tr>
            <td>Request.GetConnectionId </td>
            <td> @GlobalHttpContext.Current.Request.GetConnectionId()   </td>
        </tr>
        <tr>
            <td>Request.ContentLength </td>
            <td> @GlobalHttpContext.Current.Request.GetRequestId()   </td>
        </tr>
        <tr>
            <td>Request.GetUserAgent </td>
            <td> @GlobalHttpContext.Current.Request.GetUserAgent()   </td>
        </tr>

        <tr>
            <td>Response.ContentLength </td>
            <td> @GlobalHttpContext.Current.Response.ContentLength   </td>
        </tr>
        <tr>
            <td>Response.ContentType </td>
            <td> @GlobalHttpContext.Current.Response.ContentType   </td>
        </tr>

        <tr>
            <td>Response.StatusCode </td>
            <td> @GlobalHttpContext.Current.Response.StatusCode   </td>
        </tr>
    </table>

</p>

截图

image

版权声明:本文为purestack原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/purestack/p/9174325.html