Как добавить строку в aC# IList<string> из IronRuby?
Я получаю следующее исключение, когда пытаюсь использовать скрипт ruby для изменения списка строк C#.
Необработанное исключение: System.ArgumentException: значение "Скотт" не относится к типу "System.String" и не может использоваться в этой универсальной коллекции.
C#
IList<string> names = new List<string>();
names.Add("scott");
names.Add("jason");
ScriptRuntime runtime = IronRuby.Ruby.CreateRuntime();
ScriptEngine engine = runtime.GetEngine("IronRuby");
ScriptScope scope = engine.CreateScope();
scope.SetVariable("names", names);
engine.ExecuteFile("test.rb", scope);
foreach (var name in names)
{
Console.WriteLine(name);
}
Рубин
names.map! { |item| item.capitalize}
1 ответ
Решение
Добавлять to_clr_string
к рубиновому коду:
names.map! { |item| item.capitalize.to_clr_string }