Moves nullable constraints to comply with older Mono frameworks (e.g. Unity 2017) allowing you to use NRTs.
$ dotnet add package Divorce.FodyThis is an add-in for Fody which lets you use Nullable Reference Types in older Mono frameworks (e.g. Unity 2017). Named after an antonym of Unity, since this project bends libraries to conform it.
This project has a dependency to Emik.Morsels, if you are building this project, refer to its README first.
Install the NuGet packages Fody and Divorce.Fody. Installing Fody explicitly is needed to enable weaving.
PM> Install-Package Fody
PM> Install-Package Divorce.Fody
Add the PrivateAssets="all" metadata attribute to the <PackageReference /> items of Fody and Divorce.Fody in your project file, so they won't be listed as dependencies.
If you already have a FodyWeavers.xml file in the root directory of your project, add the <Divorce /> tag there. This file will be created on the first build if it doesn't exist:
<Weavers>
<Divorce />
</Weavers>
See Fody usage for general guidelines, and Fody Configuration for additional options.
What you write:
#nullable enable
interface I { }
class C : I { }
class D<T> where T : C { }
What gets compiled:
#nullable enable
interface I { }
class C :
#nullable disable
I
#nullable enable
{ }
class D<T> where T :
#nullable disable
C
#nullable enable
{ }
Issues and pull requests are welcome to help this repository be the best it can be.
This repository falls under the MPL-2 license.