将实现 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 层次结构,要么将您的其他图书馆移到那边。我们还不够了解,无法在此推荐合适的方法。
我有两个库 - 第一个在 .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 层次结构,要么将您的其他图书馆移到那边。我们还不够了解,无法在此推荐合适的方法。