The current version of Visual Studio and C# compilers support this. I tested with VS 16.4.2 with C# 8.0 enabled. I don't know exactly which version it was enabled in but it's good news.
Syntax:
[field: NonSerialized]
public SomeNonSerializableType MyAutoProperty { get; set; } = DefaultValueAfterSerialization;
Practical use case; support neat/round-trip-able qualified XML serialization without messy backing fields but avoid runtime exceptions and resolve code analysis error CA2235:
/// <summary>
/// XML name table for serialization.
/// </summary
[XmlSerializerNamespaces]
[field: NonSerialized]
public XmlSerializerNamespaces XmlNamespaces { get; set; } = new XmlSerializerNamespaces();
If you're working on one of the new "SDK" style projects with .NET Core 3, .NET Standard 2.1 or later it will work immediately as they default to language version 8. Otherwise for all "legacy" .NET Framework and non-SDK projects you'll have to add the "LangVersion" setting to your project as documented here to "8.0" or "latest".