Доступ к общим членам в частичных классах - PullRequest
1 голос
/ 16 февраля 2011

Я пишу WCF-сервис и делю свой класс сервиса на несколько частичных файлов классов, поэтому каждая реализация ServiceContract получает свой собственный файл. Однако у меня есть один файл, который должен содержать, например, члены, которые используются каждым частичным файлом класса, таким как регистратор. Служба размещается на IIS 7, если это имеет какое-либо значение.

Файл частичного класса 1

<ServiceBehavior(NameSpace:= WCFHelper.SERVICENAMESPACE, AddressFilterMode:= AddressFilterMode.Any)> _
Partial Public Class DataService

    #Region "Members"
    Private Shared m_Log As log4net.ILog = log4net.LogManager.GetLogger(GetType(DataService))
    #End Region

End Class

Файл частичного класса 2 (Обрезанный ненужный код для простоты примера)

Partial Public Class DataService
    Implements IContractAssets

    <SomeCustomAttribute()> _
    Public Function GetData(ByVal ID As Int64) As SomeCustomClass Implements IContractAssets.GetData

        Try
            Return SomeFunction(ID)
        Catch ex As Exception
            m_Log.Error("SomeError.", ex)
            ThrowFault()
        End Try
    End Function
End Class

Код компилируется нормально, но во время выполнения я получаю ошибку BC30451: The name m_Log is not declared (Не знаю точных слов для этого. Я получаю немецкое сообщение;)). Я не думаю, что это как-то связано с типом m_Log или зависимой сборкой, потому что я получаю ту же ошибку, если пытаюсь сделать это со строкой.

Что я делаю не так? Как я могу сделать эту работу?

Edit: я пробовал то же самое в простом консольном приложении без каких-либо проблем. (

1 Ответ

2 голосов
/ 22 февраля 2011

Наконец-то я разобрался, что вызвало эту ошибку.

К сожалению, я подумал, что было бы неплохо поместить второй файл частичного класса в каталог App_Code. Ну, это не так! :) После того, как я переместил файл в корневой каталог, все заработало нормально.

Размещение файлов частичных классов в разных каталогах само по себе, по-видимому, не является проблемой, поскольку оно отлично работает с другим подкаталогом. Он не работает, только если один из файлов находится в каталоге App_Code (или в других папках ASP.NET, я не пробовал).

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