This 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
andDivorce.Fody
. InstallingFody
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 ofFody
andDivorce.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.