我使用Nuget包System.ComponentModel.Annotations进行数据验证。现在,我也想通过正则表达式添加验证。问题是,我想添加RegexOptions,有点像这条线。nuget包版本的RegularExpressionAttribute.IsValid()不像.NET Framework那样返回bool,而是返回一个ValidationResult,因为我找不到任何方法来改变验证的结果,而ValidationResult似乎没有直接的重写方法。我之所以使用Nuget包而不是框架提供的版本,是因为它需要同时支持Nuget包支持的.NET 4.5和.NET标准1.1。那么,如何以任何有意义的方式覆盖RegularExpressionAttribute.IsValid()呢?
发布于 2017-10-16 11:24:10
我通过引用.NETStandard 1.3而不是.NETStandard 1.1来解决这个问题,因为该版本为RegularExpressionAttribute.IsValid()添加了一个覆盖,该覆盖除了返回一个ValidationResult之外,还返回一个bool。但是由于.NET Framework4.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>https://stackoverflow.com/questions/46764865
复制相似问题