Методы расширения в ссылочных сборках?

Если я попытаюсь вызвать свой метод расширения, который определен следующим образом:

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

при вызове

   Dim sss As String()
   sss.AsEnumerable.ToSortableBindingList()

он выдает ошибку «ToSortableBindingList не является членом System. Collections.Generic.IEnumerable (Of String) ".

Примечание. Intellisense выполняет автозаполнение после последнего периода! Если я попытаюсь вызвать 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
...

'Вызов работает:

...
Dim a as string
a.ToTest()
...

Assembly2: (Включена ссылка на Assembly1)

'Вызов не работает:

imports myapp
...
Dim a as string
a.ToTest()
10
задан user449253 16 September 2010 в 09:31
поделиться