The*_*eek 6 asp.net-mvc dependency-injection localization
我正在开发一个多语言的企业网站,我想将本地化存储在数据库中.
我已经阅读了以下非常好的文章,但我个人认为这是一个开销,我可以轻松实现同样的目标:
我已经设置了一些基础,但我不确定我的方法是否正常.基本上我已经创建了一个与DI寄存器的服务.
public interface ILocalizedStringProvider
{
string GetLocalizedString(string key);
string GetLocalizedString(string key, string deafultValue);
}
Run Code Online (Sandbox Code Playgroud)
我也创建了一个像这样的Html帮助器
public static MvcHtmlString LocalizedString(this HtmlHelper helper, string key, string defaultValue)
{
if (string.IsNullOrEmpty(defaultValue)) return new MvcHtmlString("");
if (string.IsNullOrEmpty(key)) return new MvcHtmlString(defaultValue);
ILocalizedStringProvider localizedStringProvider = DependencyResolver.Current.GetService<ILocalizedStringProvider>();
if (localizedStringProvider == null)
{
return MvcHtmlString.Create(defaultValue);
}
string val = localizedStringProvider.GetLocalizedString(key, defaultValue);
if (string.IsNullOrEmpty(val))
{
return MvcHtmlString.Create(defaultValue);
}
return MvcHtmlString.Create(val);
}
Run Code Online (Sandbox Code Playgroud)
然后只需从视图中调用帮助程序.
首先,我想知道这种方法是否良好,如果不是反模式.
其次我关注的是这一行:
ILocalizedStringProvider localizedStringProvider = DependencyResolver.Current.GetService<ILocalizedStringProvider>();
Run Code Online (Sandbox Code Playgroud)
使用构造函数注入来解析控制器中的服务ILocalizedStringProvider是否更好?让控制器使用本地化填充ViewBag?
谢谢!
您可以使用我的 Griffin.MvcContrib 项目。它包含一个现成的 MS SqlServer 实现,用于在数据库中存储本地化信息。
简介:http ://www.codeproject.com/Articles/352583/Localization-in-ASP-NET-MVC-with-Griffin-MvcContri
行政
还有一个管理区域可用于管理本地化:

SQL 服务器设置
https://github.com/jgauffin/griffin.mvccontrib/wiki/SqlServer
源代码
该项目可在 github 上找到:https://github.com/jgauffin/griffin.mvccontrib
| 归档时间: |
|
| 查看次数: |
3830 次 |
| 最近记录: |