デシリアライザのようなものを作るにあたり、文字列から指定した型に変換してプロパティに設定する、というのは TypeConverterPropertyDescriptor で実現できました。それで次は型付けされたコレクションに対応しようと考えています。

最初に考えたのは次のようなコードでした。

string[] input = new [] { "1", "2", "3" };
PropertyDescriptor prop = /* int[] なプロパティを指している */ ;
var converted = input.Select(prop.Converter.ConvertFrom).ToArray();
prop.SetValue(converted);

しかしこれでは object[] になってしまい、 int[] のプロパティに代入することができません。このような配列を作るにはどうするとよいでしょうか?

Activator.CreateInstance() のようにコンパイル時には object で要素を受け取り、Type で指定した型の配列を作るメソッドがないものかと思ったのですが、ないようで。。