C# 多语言(多态获取资源内容)
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Resources;
using System.Web;
using System.Web.Mvc;
namespace WebApplication29.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
string test1 = languageResx("CN", "Hello");
string test2 = languageResx("EN", "Hello");
ViewBag.test1 = test1;
ViewBag.test2 = test2;
return View();
}
//.resx文件读取,文件为内容
private string languageResx(string language, string key)
{
string filename;
switch (language.ToUpper())
{
case "CN": filename = "Common_CN.resx"; break;
case "EN": filename = "Common_EN.resx"; break;
default: filename = "Common_CN.resx"; break;
}
string languagePath = Server.MapPath("~/Resource/");
ResXResourceReader resxReader = new ResXResourceReader(languagePath + filename);
IDictionaryEnumerator dict = resxReader.GetEnumerator();
foreach (DictionaryEntry d in resxReader)
{
if (d.Key.ToString() == key)
{
string result = d.Value.ToString();
resxReader.Close();
return result;
}
}
resxReader.Close();
return "";
}
}
}
添加引用
修改资源文件
1)修改资源文件的生成操作:内容
2)修改资源文件的访问修饰符:Public