如果我尝试调用我的扩展方法,定义如下:
Module LinqExtensions <System.Runtime.CompilerServices.Extension()> _ Public Function ToSortableBindingList(Of TSource)(ByVal source As IEnumerable(Of TSource)) As IBindingList If (source Is Nothing) Then Throw New ArgumentNullException("source") End If Return New SortableBindingList(Of TSource)(New List(Of TSource)(source)) End Function End Module@H_403_2@通过电话
Dim sss As String() sss.AsEnumerable.ToSortableBindingList()@H_403_2@它给出错误“ToSortableBindingList不是System.Collections.Generic.IEnumerable(Of String)的成员”.
注意:Intellisense autocompletes在最后一个时期!如果我尝试调用context.TestTable.AsEnumerable.ToSortableBindingList(TestTable是一个纯EF4生成的类),它甚至不会显示为intellisense.我不明白为什么扩展方法声明“ByVal source As IEnumerable(Of TSource)”有什么问题?
*************************************编辑************** ******************
好的,为了澄清发生了什么,我想提供一些额外的信息.
我可以跟踪以下问题:场景:
Assembly1(根命名空间“myapp”):
... <System.Runtime.CompilerServices.Extension()> _ Public Function ToTest(ByVal source As String) As String Return "" End Function ...@H_403_2@电话:
... Dim a as string a.ToTest() ...@H_403_2@Assembly2:
(参考装配1)‘呼叫不起作用
imports myapp ... Dim a as string a.ToTest()@H_403_2@