Pregunta

Obtengo la siguiente excepción cuando intento usar un script Ruby para modificar una lista de cadenas C#.

Excepción no controlada: System.ArgumentException: El valor "Scott" no es de tipo "System.string" y no se puede usar en esta colección genérica.

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);
}

rubí

names.map! { |item| item.capitalize}
¿Fue útil?

Solución

Agregar to_clr_string al código Ruby:

names.map! { |item| item.capitalize.to_clr_string }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top