将实现 IValidatableObject 从 .NET Framework 继承到 .NET Standard 的 class

Inheritance a class that implements IValidatableObject from .NET Framework to .NET Standard

我有两个库 - 第一个在 .NET Framework 4.6.1 中,第二个在 .NET Standard 2.0 中。 (第二个依赖第一个)

.NET Framework 4.6.1 包含以下内容class

    public class Class_Framework : IValidatableObject
    {
        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            Console.WriteLine();
            return null;
        }
    }

然后我尝试在我的第二个 .NET Standard 2.0 库中使用 class:

    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'

我知道 .NET 标准中没有 DataAnnotations 库,所以我在 .NET 标准和 .NET Framework 库中都使用了 NuGet System.ComponentModel.Annotations。最奇怪的是,如果我改变

IStandardInterface anInstance = new Class_Standard();

var anInstance = new Class_Standard();

那么一切就OK了。您有什么建议 how/if 可以从 .NET Framework 库继承实现 IValidatableObject 的 class 吗?谢谢

不可行,句号。 netstandard 2.0 库只能继承自 netstandard 2.0 库,而不是完整的 .NET 库。

这是根据定义。

您要么必须拆分 class 层次结构,要么将您的其他图书馆移到那边。我们还不够了解,无法在此推荐合适的方法。