title: Adding to Dictionary does not add
body: <p>I have Dictionary which contains string as key and System.Object as value.</p>
  
  <pre><code>Dictionary&lt;string, System.Object&gt; test = new Dictionary&lt;string, System.Object&gt;();
  </code></pre>
  
  <p><strong>I create and add values</strong></p>
  
  <pre><code>Debug.Log("Key:" + (string)KEY.obj);
  Debug.Log("VALUE:" + (string)VALUE.obj);
  
  test.Add((string)KEY.obj, VALUE.obj);
  
  if (test.ContainsKey("id")){
      Debug.Log("contains!");
  }
  else{
      Debug.Log("does not contain!");
  }
  </code></pre>
  
  <p><strong>Debug Console</strong></p>
  
  <p><img src="https://i.stack.imgur.com/3MzrP.png" alt="enter image description here"></p>
  
  <p>KEY and VALUE is an object of class</p>
  
  <pre><code>private sealed class ResolveValue {
  
      public readonly System.Object obj;
      public readonly int end;
  
      public ResolveValue(System.Object obj, int end){
          this.obj = obj;
          this.end = end;
      }
  }
  </code></pre>
  
  <p>Where KEY is "id" and VALUE is "myData".</p>
  
  <p>Took me quite a while to find the problem.
  How is this possible?</p>
  
  <p><strong>Additional information</strong></p>
  
  <p>All string are converter from bytes.
  Here's a debug i made.</p>
  
  <pre><code>Debug.Log("--------");
  
  string msg = "";
  foreach(byte b in bytes){
      msg += b + " ";
  }
  Debug.Log(msg);
  
  Debug.Log("--------");
  
  string message = System.Text.Encoding.UTF8.GetString(bytes);
  Debug.Log(message);
  
  ResolveValue response = new ResolveValue(message, end);
  </code></pre>
  
  <p>Variable <em>end</em> is an integer and has nothing to do with this problem.</p>
  
  <p><img src="https://i.stack.imgur.com/nykVO.png" alt="enter image description here"></p>