Как вызвать публичную общую функцию из другого объекта формы? - PullRequest
0 голосов
/ 11 мая 2019

У меня есть функция с тегом WebMethod , разработанная для одной веб-формы, которую я хотел бы повторно использовать в другой. Проще всего было бы просто повторно использовать его на месте, но очевидные синтаксические догадки не работают.

Моя история - C ++ & C #, поэтому при попытке сослаться на общий (статический) метод я сначала обращаюсь к classname.method(parameters). Но это не сработало, поэтому я пошел в Google, и там сказали, что синтаксис classname.method(parameters).

Я попытался добавить слово Public в определение объекта первой страницы (оно остается в приведенных ниже фрагментах кода), но подсказка о проблемах защиты не дала результатов. Я также пытался использовать Imports Directories_DeptPhoneList в PeopleSearch коде, но безрезультатно.

Я надеюсь найти решение лучше, чем «вырвать функцию из WebForm и поместить ее в общий класс с другим уровнем издержек вызова».

Код возврата с первой страницы:

Public Partial Class Directories_DeptPhoneList
    Inherits System.Web.UI.Page
    ...
    <System.Web.Services.WebMethod()>
    Public Shared Function SearchRequested(key As String) As String
        ... SQL lookup, results formatted into table rows, one row per match
        ... str = "<tr>....</tr>" no <table> tag, just guts of the table
        Return str
    End Function
    ...
End Class

Второй код поддержки страницы "Ищите и это тоже":

Partial Class Directories_PeopleSearch
    Inherits System.Web.UI.Page
    ...
    <System.Web.Services.WebMethod()>
    Public Shared Function DoSearch(key As String) As String
        Dim deptRows As String = Directories_DeptPhoneList.SearchRequested(key)
        ... More lookups & data formatting another str = "<tr>....</tr>" 
        Return deptRows & str
    End Function
    ...
End Class

Я ожидаю, что смогу вызвать функцию Shared, но Visual Studio выделяет Directories_DeptPhoneList.SearchRequested при вызове метода из объекта PeopleSearch . Жалоба на ошибку гласит:

Directories_DeptPhoneList не объявлен. Может быть недоступен из-за уровня защиты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...