2014-09-04 4 views
1

Мой прото-файл отлично работает в python. Однако, когда я пытаюсь использовать protogen для создания файла CS для Protobuf-сети, это дает мне сообщение об ошибке NullReferenceException: Ссылка на объект не указывает на экземпляр объектаUnity 3D и Protobuf-net: NullReferenceException при назначении значения объекту

Вот мой файл прото

message Request { 
    enum Type { 
     CREDENTIALS    = 0; // user credentials 
    } 

    // user credentials message 
    message CredentialsData { 
     required string login = 1; 
     required string password = 2; 
    } 

    required Type      type       = 1; 
    optional CredentialsData   credentials_data    = 2;} 

Где это называется в Unity 3D

void Start() 
    { 
     Request request = new Request(); 
     request.type = Request.Type.CREDENTIALS; 
     request.credentials_data.login = "admin"; 
    } 

при назначении request.type = Request.Type.CREDENTIALS, он не имеет никаких проблем. Но следующая строка дает мне это сообщение об ошибке. Пожалуйста, помогите, спасибо.

ответ

1

Я сильно подозреваю request.credentials_data is null. Это легко исправить:

request.credentials_data = new CredentialsData(); 

или, возможно, даже использовать объектно-инициализатор для всей вещи:

var request = new Request { 
     type = Request.Type.CREDENTIALS, 
     credentials_data = new CredentialsData { 
      login = "admin" 
     } 
    }; 
+0

Он отлично работает, спасибо Марк. У меня также есть проблема с поиском документации для protobuf-net. Можете ли вы дать мне несколько предложений? – user3772803

Смежные вопросы