Итак, я использую библиотеку Newtonsoft Json.net , и она прекрасно работает, за исключением того, что у меня получился странный случай.Вот шаги, которые я делаю:
- Создание класса (простой, со строками в качестве членов)
- Преобразование его в JSON с помощью
JsonConvert.SerializeObject(class1)
- Добавитьего в другой класс в качестве поля (полезная нагрузка)
- Преобразуйте этот второй класс в JSON с помощью
JsonConvert.SerializeObject(class2)
- run -
Encoding.UTF8.GetBytes(Json)
в переменную Byte [].
Шаг 5 отлично работает, когда я запускаю мои исходные файлы с dotnet run
, без чего-либо еще.Даже когда я копирую всю исходную папку в unity, она прекрасно работает.Проблема начинается, когда я компилирую в dll, а затем пытаюсь использовать ее в единстве.Когда я это делаю, я получаю эту ошибку:
TypeLoadException: Could not resolve type with token 01000019 (from typeref, class/assembly System.Text.Encoding, System.Runtime, Version=4.2.1.0, Culture=neutral MyClient.CreatePlayer (System.String client, System.String id, System.String type, System.String teamId, System.Single[] location)
Я продолжал расследование, и с помощью файла readme Json.net, я думаю, я сузил его допроблема с этой DLL.Согласно файлу readme, библиотека «net20» должна использоваться внутри единицы.И, согласно Unity, информация о сборке Json.net DLL предназначена для .NET 3.5. Но У меня есть другие зависимости, которые требуют, чтобы время выполнения Unity было равнозначно ".NET 4.x", включая мою DLL, так что я начинаю задаваться вопросом, может ли это быть проблемой.Потому что я изменил версию среды выполнения сценариев на .NET 4.x, а не 3.0, что устарело.Когда мои исходные файлы находятся внутри единицы, они используют одну и ту же библиотеку DLL «net20» из Json.net.Может быть, здание это ломает их?
Я потерян.Кто-нибудь может дать мне несколько советов?