Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 继承实现从.NET Framework到.NET标准的IValidatableObject的类_C#_.net_Data Annotations_.net Standard - Fatal编程技术网

C# 继承实现从.NET Framework到.NET标准的IValidatableObject的类

C# 继承实现从.NET Framework到.NET标准的IValidatableObject的类,c#,.net,data-annotations,.net-standard,C#,.net,Data Annotations,.net Standard,我有两个库-第一个在.NETFramework 4.6.1中,第二个在.NETStandard2.0中。(第二个取决于第一个) .NETFramework 4.6.1包含以下类 public class Class_Framework : IValidatableObject { public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)

我有两个库-第一个在.NETFramework 4.6.1中,第二个在.NETStandard2.0中。(第二个取决于第一个)

.NETFramework 4.6.1包含以下类

    public class Class_Framework : IValidatableObject
    {
        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            Console.WriteLine();
            return null;
        }
    }
由于以下错误,我无法编译此代码:

类型“IValidatableObject”是在未引用的程序集中定义的。您必须添加对程序集“System.ComponentModel.DataAnnotations,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”的引用。

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

IStandardInterface Anistance=new Class_Standard()

var-anistance=newclass_-Standard()


那么一切都好了。您对如何/是否可以从.NET Framework库继承实现IValidatableObject的类有何建议?谢谢你

不可行,句号。NetStandard2.0库只能从NetStandard2.0库继承,而不能从完整的.NET库继承

这是根据定义

您必须拆分类层次结构或将其他库移到另一个层次结构上。我们知道的还不足以在这里推荐一种体面的方法

    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();
        }
    }