2017-10-16 1 views
0

J'utilise le package Nuget System.ComponentModel.Annotations pour la validation des données. Maintenant, j'aimerais ajouter une validation via les expressions régulières. Le problème est que je voudrais ajouter RegexOptions comme this thread. La version de package nuget de RegularExpressionAttribute.IsValid() ne renvoie pas un bool comme le fait la DLL .NET Framework, à la place il renvoie un ValidationResult qui ne semble pas avoir une approche aussi simple pour le remplacement car je ne trouve aucun moyen de modifier le résultat de la validation. La raison pour laquelle j'utilise le paquet Nuget à la place de la version fournie par Framework est qu'il doit prendre en charge à la fois .NET 4.5 et .NET Standard 1.1 pris en charge par le package Nuget. Alors, comment remplacer RegularExpressionAttribute.IsValid() de manière significative?Substitution de RegularExpressionAttribute.IsValid dans Nuget System.ComponentModel.Annotations

+0

D'après ce que je comprends les versions standard et .NET Framework sont incompatibles . C'est la raison pour laquelle j'ai choisi le paquet Nuget. – Brolaugh

Répondre

1

I a résolu le problème en faisant référence à .NETStandard 1,3 au lieu de 1,1 .NETStandard que cette version ajoute une valeur de remplacement pour RegularExpressionAttribute.IsValid() qui renvoie un bool en plus de celle qui renvoie un ValidationResult. Mais depuis .NET Framework 4.5 n'implémente .NETStandard 1.1 Je devais cibler plusieurs cadres entraînant une modification de project.csproj se termine par ressembler à ceci:

<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>