Я пишу 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: я пробовал то же самое в простом консольном приложении без каких-либо проблем. (