У меня есть две библиотеки - первая в. NET Framework 4.6.1, а вторая в. NET Standard 2.0. (Второй зависит от первого)
. NET Framework 4.6.1 содержит следующий класс
public class Class_Framework : IValidatableObject
{
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
Console.WriteLine();
return null;
}
}
, тогда я пытаюсь использовать этот класс во втором. NET Стандартная библиотека 2.0:
interface IStandardInterface
{
string AProperty { get; set; }
}
class Class_Standard : Class_Framework, IStandardInterface
{
public string AProperty { get; set; }
}
public class MainStandardClass
{
public void AMethod()
{
IStandardInterface anInstance = new Class_Standard();
}
}
Я не могу скомпилировать этот код из-за следующей ошибки:
The type 'IValidatableObject' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
Я осведомлен, что нет Библиотека DataAnnotations в. NET стандарте, поэтому я использовал NuGet System.ComponentModel.Annotations в. NET Standard и. NET Framework библиотеке. Самое странное, что если я поменяю
IStandardInterface anInstance = new Class_Standard();
на
var anInstance = new Class_Standard();
, то все в порядке. Есть ли у вас какие-либо предположения о том, как / если возможно наследовать класс, реализующий IValidatableObject, из библиотеки. NET Framework? Спасибо