title: Object of type 'X[]' cannot be converted to type 'X[]'
body: <p>I have a control with a property like this:</p>
  
  <pre><code>public BindingList&lt;I&gt; X { get; private set; } = new SortableBindingList&lt;I&gt;();
  </code></pre>
  
  <p>Where I is an interface. It builds fine, runs fine, but when I add this control to a form (doesn't matter if the form is in the same assembly or not), and then try to open that form in visual studio (2017), the form is not shown and the following error message comes up:</p>
  
  <blockquote>
    <p>Object of type 'I[]' cannot be converted to type 'I[]'.</p>
  </blockquote>
  
  <p>With a call stack of:</p>
  
  <blockquote>
    <p>at System.RuntimeType.TryChangeType(Object value, Binder binder,
    CultureInfo culture, Boolean needsSpecialCast) at
    System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo
    culture, BindingFlags invokeAttr) at
    System.Reflection.RtFieldInfo.UnsafeSetValue(Object obj, Object value,
    BindingFlags invokeAttr, Binder binder, CultureInfo culture) at
    System.Runtime.Serialization.FormatterServices.SerializationSetValue(MemberInfo
    fi, Object target, Object value) at
    System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder
    holder, Boolean bObjectFullyComplete) at
    System.Runtime.Serialization.ObjectManager.DoNewlyRegisteredObjectFixups(ObjectHolder
    holder) at
    System.Runtime.Serialization.ObjectManager.RegisterObject(Object obj,
    Int64 objectID, SerializationInfo info, Int64 idOfContainingObj,
    MemberInfo member, Int32[] arrayIndex) at
    System.Runtime.Serialization.Formatters.Binary.ObjectReader.RegisterObject(Object
    obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString) at
    System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord
    pr) at
    System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord
    pr) at
    System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() at
    System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler
    handler, __BinaryParser serParser, Boolean fCheck, Boolean
    isCrossAppDomain, IMethodCallMessage methodCallMessage) at
    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream
    serializationStream, HeaderHandler handler, Boolean fCheck, Boolean
    isCrossAppDomain, IMethodCallMessage methodCallMessage) at
    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream
    serializationStream) at
    System.Resources.ResXDataNode.GenerateObjectFromDataNodeInfo(DataNodeInfo
    dataNodeInfo, ITypeResolutionService typeResolver) at
    System.Resources.ResXDataNode.GetValue(ITypeResolutionService
    typeResolver) at
    System.Resources.ResXResourceReader.ParseDataNode(XmlTextReader
    reader, Boolean isMetaData) at
    System.Resources.ResXResourceReader.ParseXml(XmlTextReader reader)</p>
  </blockquote>
  
  <p>I tried adding </p>
  
  <pre><code>[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  </code></pre>
  
  <p>or</p>
  
  <pre><code>[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  </code></pre>
  
  <p>as per <a href="https://stackoverflow.com/a/29720/68936">https://stackoverflow.com/a/29720/68936</a> and <a href="https://stackoverflow.com/a/29717/68936">https://stackoverflow.com/a/29717/68936</a>, respectively;</p>
  
  <p>I have also tried replacing the getter-setter with</p>
  
  <pre><code>private BindingList&lt;I&gt; myX = new SortableBindingList&lt;I&gt;();
  public BindingList&lt;I&gt; myX { get { return myX; } }
  </code></pre>
  
  <p>As per <a href="https://stackoverflow.com/a/16657926/68936">https://stackoverflow.com/a/16657926/68936</a></p>
  
  <p>To no avail. I've tried closing all open documents, closing the solution, restarting visual studio, rebuilding both assemblies, nothing seems to resolve this.</p>