【发布时间】:2020-01-30 13:03:30
【问题描述】:
我有两个库 - 第一个在 .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 Standard 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'
我知道 .NET 标准中没有 DataAnnotations 库,因此我在 .NET Standard 和 .NET Framework 库中都使用了 NuGet System.ComponentModel.Annotations。最奇怪的是,如果我改变了
IStandardInterface anInstance = new Class_Standard();
到
var anInstance = new Class_Standard();
然后一切正常。您对如何/是否可以从 .NET Framework 库继承实现 IValidatableObject 的类有任何建议吗?谢谢
【问题讨论】:
标签: c# .net data-annotations .net-standard