title: Convert string to Array of string using TypeConverter
body: <p>I need convert string <code>"foo1,foo2,foo3"</code> to <code>string[]</code>.</p>
  
  <p>I want to use <code>TypeConverter</code> or its child <code>ArrayConverter</code>. Its contain method <code>ConvertFromString</code>.</p>
  
  <p>But if I call this method I catch an exception <code>ArrayConverter cannot convert from System.String.</code></p>
  
  <p>I know about <code>Split</code>, don't suggest me this solution.</p>
  
  <p><strong>----SOLUTION---</strong></p>
  
  <p>using advice @Marc Gravell and answer of this topic by @Patrick Hofman I wrote <code>CustumTypeDescriptorProvider</code></p>
  
  <pre><code>public class CustumTypeDescriptorProvider:TypeDescriptionProvider
      {
          public override ICustomTypeDescriptor GetTypeDescriptor(System.Type objectType, object instance)
          {
              if (objectType.Name == "String[]") return new StringArrayDescriptor();
              return base.GetTypeDescriptor(objectType, instance);
          }
      }
  public class StringArrayDescriptor : CustomTypeDescriptor
      {
          public override TypeConverter GetConverter()
          {
              return new StringArrayConverter();
          }
      }
  </code></pre>
  
  <p>where <code>StringArrayConverter</code> is implemented in answer below this post.
  To use it I added <code>CustumTypeDescriptorProvider</code> to collection of providers </p>
  
  <pre><code> TypeDescriptor.AddProvider(new CustumTypeDescriptorProvider(), typeof(string[]));
  </code></pre>
  
  <p>To use it in <code>TestClass</code> you need to write a few lines:</p>
  
  <pre><code> TypeConverter typeConverter = TypeDescriptor.GetConverter(prop.PropertyType);
   cValue = typeConverter.ConvertFromString(Value);
  </code></pre>
  
  <p>I believe that this can help somebody and save him from angry downvoiters.</p>