``Newtonsoft.Json.Serialization.Func <T,TResult>''和'System.Func <T,TResult>之间的JSON.net模糊引用

时间:2019-10-23 15:07:46

标签: c# unity3d json.net

因此,我试图在我的Unity项目中包含JSON.net库,但是关于“ Newtonsoft.Json.Serialization.Func”和“ System.Func”之间的歧义引用,我有150多个错误。

我下载了最新版本的JSON.net(Newtonsoft.Json 12.0.2),并且正在使用.NET 4.x。

我应该手动解决所有错误吗?

有捷径吗?有解决办法吗?

1 个答案:

答案 0 :(得分:0)

您需要使用适用于Unity3D的Newtonsoft JSON构建。 This is the build I use in my shipping game.

另外,将link.xml放在资产文件夹中,其中包含:

<linker>
    <assembly fullname="System">
        <type fullname="System.ComponentModel.TypeConverter" preserve="all"/>
        <type fullname="System.ComponentModel.ArrayConverter" preserve="all"/>
        <type fullname="System.ComponentModel.BaseNumberConverter" preserve="all"/>
        <type fullname="System.ComponentModel.BooleanConverter" preserve="all"/>
        <type fullname="System.ComponentModel.ByteConverter" preserve="all"/>
        <type fullname="System.ComponentModel.CharConverter" preserve="all"/>
        <type fullname="System.ComponentModel.CollectionConverter" preserve="all"/>
        <type fullname="System.ComponentModel.ComponentConverter" preserve="all"/>
        <type fullname="System.ComponentModel.CultureInfoConverter" preserve="all"/>
        <type fullname="System.ComponentModel.DateTimeConverter" preserve="all"/>
        <type fullname="System.ComponentModel.DecimalConverter" preserve="all"/>
        <type fullname="System.ComponentModel.DoubleConverter" preserve="all"/>
        <type fullname="System.ComponentModel.EnumConverter" preserve="all"/>
        <type fullname="System.ComponentModel.ExpandableObjectConverter" preserve="all"/>
        <type fullname="System.ComponentModel.Int16Converter" preserve="all"/>
        <type fullname="System.ComponentModel.Int32Converter" preserve="all"/>
        <type fullname="System.ComponentModel.Int64Converter" preserve="all"/>
        <type fullname="System.ComponentModel.NullableConverter" preserve="all"/>
        <type fullname="System.ComponentModel.SByteConverter" preserve="all"/>
        <type fullname="System.ComponentModel.SingleConverter" preserve="all"/>
        <type fullname="System.ComponentModel.StringConverter" preserve="all"/>
        <type fullname="System.ComponentModel.TimeSpanConverter" preserve="all"/>
        <type fullname="System.ComponentModel.UInt16Converter" preserve="all"/>
        <type fullname="System.ComponentModel.UInt32Converter" preserve="all"/>
        <type fullname="System.ComponentModel.UInt64Converter" preserve="all"/>
    </assembly>
</linker>

最后,对于许多类型,您可能必须直接在脚本中引用它们。对于List<int[]>List<int?>类型的类型,这种情况最常见。