覆盖Nuget中的RegularExpressionAttribute.IsValid System.ComponentModel.Annotations

问题描述:

我使用Nuget包System.ComponentModel.Annotations进行数据验证。现在我想通过Regular Expressions添加验证。问题是我想添加RegexOptions类似于this thread。 的nuget软件包版本不会像.NET Framework DLL那样返回bool,而是它会返回ValidationResult,它似乎没有一个用于覆盖的简单方法,因为我找不到任何方法来更改验证结果。我使用Nuget包而不是Framework提供的版本的原因是它需要同时支持Nuget包支持的.NET 4.5和.NET Standard 1.1。那么如何以任何有意义的方式覆盖RegularExpressionAttribute.IsValid()覆盖Nuget中的RegularExpressionAttribute.IsValid System.ComponentModel.Annotations

+0

从我了解的.NET标准和.NET Framework版本不兼容。这是我选择Nuget包的原因。 – Brolaugh

我通过引用.NETStandard 1.3,而不是1.1 .NETStandard作为版本增加了对RegularExpressionAttribute.IsValid(),除了返回一个ValidationResult一个返回bool一个覆盖解决的问题。但是,由于.NET框架4.5只实现.NETStandard 1.1我不得不产生一个编辑多种框架靶向project.csproj结束这样看:

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <TargetFrameworks>netstandard1.3;net45</TargetFrameworks> 
    <RootNamespace>Foobar</RootNamespace> 
    <AssemblyName>Foobar</AssemblyName> 
    </PropertyGroup> 
    <ItemGroup> 
    <PackageReference Include="System.ComponentModel.Annotations" Version="4.4.0" /> 
    </ItemGroup> 

</Project>