When building class libraries in .NET Core that contain classes marked with the [Serializable]
attribute or that implement the ISerializable
interface, you may end up with compilation errors. If you’re following best practices and building your class library projects to conform to a specific version of netstandard
, then there’s a good chance it might appear as though this attribute and interface are not part of core.
Because of Core’s modular nature, some things may appear to be missing that aren’t. For example, both the [Serializable]
attribute and the ISerializable
interface are part of the NuGet package System.Runtime.Serialization.Formatters
which you can find on Nuget.org.
To get these things to compile, just add a reference to this module in your project and things should work. Many classes that used to implement ISerializable
in legacy versions of .NET do not implement that interface in .NET Core, which means the .NET Core versions of those classes likely don’t have the constructor overloads that accept SerializationInfo
objects, etc.