我正在使用Nuget包System.ComponentModel.Annotations进行数据验证。现在我也想通过正则表达式添加验证。问题是,我想添加RegexOptions
类this thread。 RegularExpressionAttribute.IsValid()
的nuget包版本不像.NET Framework DLL那样返回bool
,而是返回ValidationResult
,它似乎没有as因为我无法找到改变验证结果的任何方法,所以直接采用覆盖的方法。我之所以使用Nuget软件包而不是Framework提供的版本,是因为它需要支持Nuget软件包支持的.NET 4.5和.NET Standard 1.1。那么如何以任何有意义的方式覆盖RegularExpressionAttribute.IsValid()
?
答案 0 :(得分:2)
我通过引用.NETStandard 1.3而不是.NETStandard 1.1解决了这个问题,因为该版本添加了RegularExpressionAttribute.IsValid()
的覆盖,除了返回bool
的{{1}}之外还返回ValidationResult
。但是由于.NET Framework 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>