我已经把头发拉了一段时间。我有一个自定义活动接受像这样的InArgument:
[RequiredArgument]
public InArgument<Func<IDataReader, T>> Projection { get; set; }
稍后我会在SQL查询之后在数据读取器的Select语句中使用此Projection,如下所示:
results = reader.Select<T>(context.GetValue(this.Projection)).ToList();
现在,唯一困难的部分实际上是在VB表达式中传递func变量。特别是在这种情况下,T是RawTie对象的列表。但是每当我尝试使用表达式复杂化来从阅读器组装列表时,我都会收到错误:语句Lambda函数在此上下文中不受支持。
这是我尝试的表达式的示例。牢记VB不是我的主要语言:
Function(r As IDataReader) As New List(Of RawTie)
Dim ties As New List(Of RawTie)()
Do While r.Read()
'Do something with the ties
Loop
r.Close()
Return ties
End Function
至少有关于这是VB问题还是WWF问题的信息?只要问你是否需要更多信息。