【发布时间】:2017-10-12 13:15:56
【问题描述】:
当我尝试在 .NETStandard 1.4 项目中使用 [DataContract] 装饰类时
[DataContract]
[KnownType(typeof(SingleSensorEvent))]
[KnownType(typeof(BatchSensorEvent))]
public abstract class WebItemBase
{
// details left out
}
我得到以下编译错误
1>WebItemBase.cs(7,6,7,18):错误 CS0653:无法应用属性类 'DataContract' 因为它是抽象的
1>WebItemBase.cs(8,6,8,15): 错误 CS0012:“属性”类型是在程序集中定义的,该程序集是 未参考。您必须添加对程序集“mscorlib”的引用, 版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089'。
有没有办法在 NETStandard 1.4 中使用数据合约?
【问题讨论】:
-
你做了一些你不应该做的事情来得到这样的错误。不管是什么,最好不要强迫我们猜测,一定要再次撤消它。相反,您需要添加对 Nuget 包 System.Runtime.Serialization v4.3.0 的引用。请注意,您的项目现在可能无法移植到您想到的每个平台,YMMV。
-
@HansPassant 将类移动到新项目并添加您建议的 nuget 包工作。我的时间已经到了,所以我稍后会更深入地挖掘。我想我破坏了项目中的某些东西。非常感谢您的指点!如果你放弃它作为答案,我会接受它。
-
@HansPassant,考虑到我尝试使用 X 型(.NET Standard 中也可以使用的任何普通 .NET 类型),你能告诉我确定哪个 .NET Standard 的可靠方法吗? 最低版本我需要使用它,以及添加引用到哪个nuget包?在处理我自己的类库时,我发现很难理解 .NET 标准的这一部分,但我也很确定我不知道去哪里找。
-
@LasseVKarlsen 使用docs.microsoft.com/en-us/dotnet/api/?view=netstandard-2.0 Nuget 包的名称是该类所在的程序集名称
标签: c# datacontract .net-standard .net-standard-1.4