2016-03-23 11 views
4


İşlemler arası veri iletişimi için NetMQ kullanıyorum.
NuGet paketi sürüm 3.3.2.2 üzerinde .Net 4.5 kullanıyorum
Bir dizeden basit bir ileti oluşturmak ve bir RequestSocket üzerinden göndermek istiyorum.System.ArgumentNullException with NetMQ.Msg.Put()

Örneklerin hiçbiri herhangi bir noktada boş olmamasına rağmen System.ArgumentNullException almaya devam ediyorum.

benim öz içeren kod:

static void Main(string[] args) 
{ 
    string exampleString = "hello, world"; 

    byte[] bytes = new byte[exampleString.Length * sizeof(char)]; 
    if (bytes == null) 
    { 
     return; 
    } 

    System.Buffer.BlockCopy(exampleString.ToCharArray(), 0, bytes, 0, bytes.Length); 

    var clientMessage = new NetMQ.Msg(); 
    clientMessage.InitEmpty(); 

    if (!clientMessage.IsInitialised) 
    { 
     return; 
    } 

    clientMessage.Put(bytes, 0, bytes.Length); //throws exception! 

} 
+0

Tek. Bu istisnayı açıkça atanan bu yöntem için [NetMQ kodunda] hiçbir şey görünmüyor (https://github.com/zeromq/netmq/blob/master/src/NetMQ/Msg.cs). –

+0

Çünkü "clientMessage" ın başlatıldı, ancak InitEmpty() 'nedeniyle herhangi bir MsgType yok. –

+0

@diiN_ Sugget'i nasıl başlatırsınız? –

cevap

2

bunu Datanull bu noktada github

public void Put([CanBeNull] byte[] src, int i, int len) 
{ 
    if (len == 0 || src == null) 
     return; 

    Buffer.BlockCopy(src, 0, Data, i, len); 
} 

itibaren Buffer.BlockCopy(src, 0, Data, i, len);

çağırır ve Buffer.BlockCopyArgumentNullException

01 atar Put çağrı

InitPool numaralı telefonu veya InitGC numaralı telefonu arayarak denemeye çalışın.

+0

havalı. Şimdi çalışıyorum! –