[英].NET Standard Class Library in .NET Framework 4.7 project
我想在用于AWS Lambda的.NET Framework 4.7解决方案和.NET Core解决方案之间共享代码。
我创建了一个.NET Standard 1.6类库项目,并将一些代码从.NET Framework 4.7解决方案移至该项目中以便共享。
除一件事外,其他所有工具都工作正常-该代码用于DTO类,该类由.NET解决方案中的BinaryFormatter序列化。
例如:
[Serializable]
public class BillableOptionalOperationDto
{
public string OperationDescription { get; set; }
public string Note { get; set; }
public decimal UnitPriceIncGst { get; set; }
}
我创建了一个polyfill,以便代码在.NET Standard项目中进行编译。
namespace System
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Delegate)]
public class SerializableAttribute : Attribute
{
}
}
.NET Standard项目作为Nuget包发布到TeamCity中的Nuget Server。
在.NET Framework解决方案中,我(很正确)收到此错误:
错误CS0433类型'SerializableAttribute'在'AutoGuru.Shared.Quinging,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'和'mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'中都存在
是否可以在.NET Standard 1.6类库中的类上使用BinaryFormatter?
您将无法使用.NET Core运行时使用BinaryFormatter进行序列化,但至少可以使用此nuget包进行交叉编译
https://www.nuget.org/packages/System.Runtime.Serialization.Formatters/
请注意,尽管使用.NET Standard进行程序集绑定是一团糟,并且无需进行大量的程序集重定向,您的代码就可以正常编译,但会在运行时抛出找不到程序集的异常。 据说.NET Standard 2.0将解决此问题,但我没有屏息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.