【问题标题】:Is it possible to write an ActionFilter for .Net Framework and one .Net Core in Single project是否可以在单个项目中为 .Net Framework 和一个 .Net Core 编写 ActionFilter
【发布时间】:2020-04-30 01:07:58
【问题描述】:

我正在为多个项目和 C# 解决方案所需的代码编写一个库。 我正在编写一个 ActionFilter 验证文件上传的文件扩展名。我在 .Net Framework MVC 项目和 .Net Core mvc 项目中都需要这个。

是否可以在共享的 .net 标准上创建项目,即具有两个 ActionFilters 的项目,一个用于 .Net Framework,一个用于 .Net Core?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-core model-view-controller


    【解决方案1】:

    *.csproj 文件中,它会有所帮助

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFrameworks>net452;netstandard2.0;</TargetFrameworks>
      </PropertyGroup>
    
      <PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0'">
        <DefineConstants>NETCORE;NETSTANDARD;NETSTANDARD2_0</DefineConstants>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(TargetFramework)' == 'net452'">
        <DefineConstants>NET45;NETFULL</DefineConstants>
      </PropertyGroup>
    
      <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0'">
        <PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.0.0" />
      </ItemGroup>
    
      <ItemGroup Condition=" '$(TargetFramework)' == 'net452'">
        <Reference Include="System.Web" />
        <PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.7" />
      </ItemGroup>
    </Project>
    

    对于过滤器类:

    #if NETCORE
    using Microsoft.AspNetCore.Mvc.Filters;
    #else
    using System.Web.Mvc;
    #endif
    
    namespace SharedFilter
    {
        public class MyFilter : IActionFilter
        {
            public void OnActionExecuting(ActionExecutingContext context)
            {
                throw new System.NotImplementedException();
            }
    
            public void OnActionExecuted(ActionExecutedContext context)
            {
                throw new System.NotImplementedException();
            }
        }
    }
    

    我为Serilog 编写了一个库来丰富针对多个框架的日志。查看*.csproj 和类以了解更多详细信息。

    https://github.com/mo-esmp/serilog-enrichers-clientinfo/blob/master/src/Serilog.Enrichers.ClientInfo/Serilog.Enrichers.ClientInfo.csproj

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多