C # Невозможно сериализовать класс <T> - PullRequest
0 голосов
/ 27 июня 2019

Я не могу сериализовать следующий класс ...

[Serializable]
public class ClassA <T>
{
    public T Name;
}

когда я пытаюсь сериализовать этот класс в качестве примера ...

[Serializable]
public class ClassB
{
    public int num;
    public ClassA<MyEnum> classA;
}

Вывод файла json будет содержать ClassB с переменной num, но не будет включать classA

Можно ли сериализовать Class A <T>?

Обратите внимание, я использую UnityEngine.JsonUtility

1 Ответ

2 голосов
/ 27 июня 2019

Нет, на самом деле, вы не можете напрямую сериализовать родословные, а просто должны наследовать от универсального класса, чтобы заставить его работать:

public class ClassA <T>
{
    public T Name;
}

[Serializable]
public class SerializeableClassA : ClassA<MyEnum> { }

[Serializable]
public class ClassB
{
    public int num;
    public SerializeableClassA classA;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...