. NET Core 3.0 «Ошибка конструктора System.String не найдена» при попытке изменить строку [] из propertyGrid - PullRequest
0 голосов
/ 24 марта 2020

У меня есть класс параметров, который выглядит следующим образом:

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, окно редактора коллекции строк всплывает как раньше: enter image description here

, но когда я пытаюсь добавить новое значение, я получаю следующую ошибку "Конструктор типа '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; }

, но он не работал.

1 Ответ

0 голосов
/ 27 марта 2020

StringCollectionEditor не существует в. NET Core 3.0. Я обновил цель моего проекта до. NET Core 3.1, и он ведет себя как в. NET framework.

...