【发布时间】:2015-08-27 09:04:36
【问题描述】:
我尝试使用 rClr。我发现了如何将“普通”(基本类型)参数提供给 clr 函数。我还能够从函数中检索“正常”值。
问题:
带来许多数据,例如一个数据帧(每帧有很多条目)到一个 c# 函数中。
参数的示例数据框
namerecord1 <- data.frame(id=1, name='A', lastname="a", coordinate=1.23456)
namerecord2 <- data.frame(id=2, name='B', lastname="b", coordinate=2.4560789)
argument <- rbind(namerecord1, namerecord2)
从函数中检索一个 coutumclasses 数组
返回值的示例代码c#
List<NameRecord> tmpResult = new List<NameRecord>(3);
tmpResult.Add(new NameRecord { Name = "ASDF", LastName = "asdf", Id = 1, DoubleValue = 1.456789 });
tmpResult.Add(new NameRecord { Name = "QWER", LastName = "qwer", Id = 2, DoubleValue = 2.456789 });
tmpResult.Add(new NameRecord { Name = "YXCV", LastName = "yxcv", Id = 3, DoubleValue = 3.456789 });
return tmpResult.ToArray();
我尝试了什么
result <- clrCall(object, 'SetArgument', argument)
但在给定的参数中只有一个对象 -Array 有四个空值。
在检索时,我得到了一个看起来非常复杂的对象。也许有办法在数据框中转换它?
【问题讨论】:
-
不清楚您要做什么?您可以添加您的 c# 函数的签名(此处为 SetArgument)吗?
-
首先,这只是一个示例应用程序:-) 当它工作时,我会去做生产代码。但是我尝试了 SetArgument(object arg) - 这给出了空对象数组 - 我也尝试了 SetArgument(NameRecord[] arg) - 这导致了一个错误,它说:在类型 rClrTest.TestClass1 上找不到合适的实例方法 SetArgument方法参数 Object[]
-
参数如何进入c#函数并不重要。我只需要它们以可用的形式在里面。 - 使用的数据由大约 1000 个具有许多字段的数据对象组成