Для начала это помогает, в *.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