У меня есть класс параметров, который выглядит следующим образом:
public class FooOptions
{
[Description("string"), DefaultValue("foo")]
public string Foo { get; set; }
[Description("Array of strings"), DefaultValue(new[] { "foo" })]
public string[] FooArray { get; set; }
//...
}
Я изменяю его через PropertyGrid ( System. Windows .Forms.PropertyGrid ).
Все работало нормально, пока я не переключился с. NET Framework на. NET Core 3.0.
Когда я нажимаю на опцию FooArray в PropertyGrid, окно редактора коллекции строк всплывает как раньше:
, но когда я пытаюсь добавить новое значение, я получаю следующую ошибку "Конструктор типа 'System.String' not found".
Я пытался указать редактор через модель компонентов (как рекомендовано во многих статьях):
[Editor("System.Windows.Forms.Design.StringCollectionEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor")]
public string[] FooArray { get; set; }
, но он не работал.