Unity Недопустимое исключение приведения при использовании метода в пользовательской библиотеке dll

#c# #unity3d

Вопрос:

У меня есть кое-какой вопрос, (извините, я плохо говорю по-английски)

во-первых, объясните структуру моего проекта

Проект библиотеки CoreNet включает тип перечисления с именем PACKET_TYPE,

Проект библиотеки MmoCore включает тип перечисления с именем CONTENT_TYPE, и этот проект относится к «CoreNet».

наконец, проект unity ссылается на CoreNet, dll MmoCore в папке плагинов

и Недопустимое исключение приведения возникает, когда я вызываю метод «SerWrite».

Метод SerWrite приведен ниже [этот метод находится в MmoCore].

 void SerWrite()
{
 // NetStream ns, PACKET_TYPE pt in packet class

 //NetStream is just Custom Stream class
 //PACKET_TYPE is in CoreNet dll.
 Translate.Write(ns, pt);
}
 

итак, мой сценарий в образце unity

 void Start()
{
 var tmpP = PACKET_TYPE.SOME;
 var ns = new NetStream();
//non exception
 Translate.Write(ns, tmpP);

 HelloReq p = new HelloReq();
//unity throw invalid cast exception 
 p.SerWrite();
}
 

как я могу это исправить..?

Комментарии:

1. Попробуй p.SerWrite(ns, tmpP) .

2. извините, это опечатка, лол; я исправляю ее

3. Все, что я могу предположить, это то, что ns pt переменные и не соответствуют сигнатуре Translate.Write функции без дополнительной информации.