2
在asp.net 3.5应用程序中,我试图明确地本地化文本。以下示例来自MSDNAsp.Net 3.5使用web应用程序进行显式定位
<asp:Label ID="Label2" Runat="server" Text="<%$ Resources:LocalizedText, Msg1 %>">
问题是它似乎无法找到资源类。我正在使用一个asp.net应用程序,而不是网站。我试过为资源类指定完整的命名空间。例如:
<asp:Label ID="Label2" Runat="server" Text="<%$ Resources:MyProject.Web.Properties.Resources, Msg1 %>">
但无济于事。有任何想法吗?
忘了提...如果我使用数据绑定表达式这样的,它的工作原理:
<asp:Label ID="Label2" Runat="server" Text="<% MyProject.Web.Properties.Resources.Msg1 %>">
更新:
花一点时间与反射后在ResourceExpressionBuilder碰到这样的:
private static IResourceProvider GetGlobalResourceProvider(string classKey)
{
string str = "Resources." + classKey;
CacheInternal cacheInternal = HttpRuntime.CacheInternal;
string key = "A" + str;
IResourceProvider provider = cacheInternal[key] as IResourceProvider;
if (provider == null)
{
EnsureResourceProviderFactory();
provider = s_resourceProviderFactory.CreateGlobalResourceProvider(classKey);
cacheInternal.UtcInsert(key, provider);
}
return provider;
}
因此,它看起来像期待Resources.xxx的命名空间。我当前的资源文件驻留在Web应用程序的名称空间中的WebApp> Properties> Resources中。认为这是问题。