В настоящее время мы пытаемся локализовать наш довольно обширный модуль и использовать один resx (для удобства управления). Мы создали следующий код, который возвращает ключи однако он оставляет нас с сообщением журнала в средстве просмотра событий (ниже кода)Относительный виртуальный путь «x.resx» здесь не разрешен
Я также должен добавить, что я не могу использовать httpcontext.current.server.mappath, поскольку функции также используются там, где нет httpконтекста
Код:
Public Shared Function GetString(ByVal key As String, ByVal ParamArray params As String()) As String
Dim SharedResourceFolder As String = "~/App_GlobalResources/"
Dim myStr As String = Nothing
If CultureInfo.CurrentCulture.Name <> "en-GB" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources." & CultureInfo.CurrentCulture.Name & ".resx")
If myStr Is Nothing OrElse myStr = "" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources." & CultureInfo.CurrentCulture.Name.Substring(0, 2) & ".resx")
End If
End If
If myStr Is Nothing OrElse myStr = "" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources.resx")
End If
If myStr IsNot Nothing AndAlso myStr <> "" Then
Return String.Format(CultureInfo.CurrentCulture, myStr, params)
End If
Dim res As String = Localization.GetString(key, "Resources.resx", "en-GB")
If String.IsNullOrEmpty(res) Then
Return Nothing
End If
Return String.Format(CultureInfo.InvariantCulture, res, params)
End Function
Ошибка Сообщение:
System.ArgumentException: Относительный виртуальный путь 'sharedresources.resx' является не допускается. в System.Web.VirtualPath.FailIfRelativePath() в System.Web.Hosting.HostingEnvironment.MapPathActual (виртуальный_путь виртуальный_пути, Boolean permitNull) в System.Web.Hosting.HostingEnvironment.MapPathInternal (виртуальный_пути виртуальный_пути) в системе .Web.Hosting.HostingEnvironment.MapPath (виртуальный_путь виртуальный_путь) при System.Web.Hosting.HostingEnvironment.MapPath (String виртуальный_путь) при DotNetNuke.Services.Localization.Localization.GetResourceFileCallBack (cacheItemArgs cacheItemArgs) на DotNetNuke.Common .Utilities.DataCache.GetCachedData [TObject] (CacheItemArgs cacheItemArgs, CacheItemExpiredCallback cacheItemExpired, Boolean storeInDictionary)
Благодарен за любую помощь
UPDATE:
изменяющемся к физическому пути заставило меня проблема в ядре DNN, вернувшись к виртуальному пути и изменив строку кода, где в модуле исправлена проблема
Отметить ответ, поскольку он помог мне найти проблему, и я не могу действительно увидеть способ объяснить всю полноту всего этого. – Matt