2014-09-04 36 views
1

我的原始文件在Python中正常工作。然而,当我尝试用硫辛酸来生成protobuf网的CS文件,它给了我一个错误信息的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_datanull。这是简单的修复:

request.credentials_data = new CredentialsData(); 

或者甚至使用了整个事情的对象的初始化:

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

它完美,感谢马克。我也有问题找到protobuf网的文档。你能给我一些建议吗? – user3772803 2014-09-04 14:53:58