这是我的RESX文件的样子:
Name Value Comments
Rule_seconds seconds seconds
Rule_Sound Sound Sound
Run Code Online (Sandbox Code Playgroud)
我想要的是:按字符串名称值,如下所示:
public string GetResxNameByValue(string value)
{
// some code to get name value
}
Run Code Online (Sandbox Code Playgroud)
并按如下方式实现:
string str = GetResxNameByValue("seconds");
Run Code Online (Sandbox Code Playgroud)
所以这str将回来Rule_seconds
谢谢!
在 Visual Studio 环境中,项目 A (ASP.NET) 在我的解决方案中引用项目 B (C#),如下所示:
Solution
??Project B
? ??data.txt
? ??process.cs (a class BB with static initialization new FileStream("data.txt"))
? Project A (referencces Project B)
??bin
? ??data.txt (copied from project B each time project B changes)
??Controllers
??mycontroller.cs (references the class BB)
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行应用程序时,工作目录是C:\Program Files (x86)\IIS Express\,这样的data.txt不能从编译版本的阅读process.cs这是bin。
暂时为了解决这个问题,我手动复制data.txt到了这个文件夹,但是这个方案不可行。注意,对 B 的更改必须与依赖于 B 的其他项目保持一致,这些项目并非都是 ASP.NET 项目。
我应该进行哪些更改,以便data.txt可以从我的项目中访问,而无需依赖我将data.txt文件复制到IIS Express目录?
我想将我的程序移植到 Azure Online,但我不能依赖此方法。感谢您的帮助。
其他链接答案:
我正在开发一个可本地化的应用程序.在我的"本地"资源文件中,我使用默认语言(英语),如果可能的话,我加载用户的首选项和文化,并加载翻译成语言的字符串.
所以我做了什么:
private static CultureInfo _culture = CultureInfo.CurrentUICulture;
private static ResourceManager _manager;
private static void ToNeutralCulture()
{
while (!_culture.IsNeutralCulture)
{
_culture = _culture.Parent;
}
}
private static void LoadCulture()
{
ResourceManager manager = Properties.Resources.ResourceManager;
try
{
ToNeutralCulture();
string assembly = Assembly.GetCallingAssembly().GetName().CodeBase;
string assemblyDir = Path.GetDirectoryName(assembly);
string assemblyName = Path.GetFileNameWithoutExtension(assembly);
string resourceFileName = string.Format(CultureInfo.InvariantCulture,
@"{0}\{1}_{2}.dll",
assemblyDir,
assemblyName,
_culture.Name.ToUpper());
FileInfo resourceFile = new FileInfo(resourceFileName);
if (resourceFile.Exists)
{
Assembly resourceAssembly = Assembly.LoadFrom(resourceFile.FullName);
string[] manifests = resourceAssembly.GetManifestResourceNames();
if (manifests.Length == 1)
{
manager = …Run Code Online (Sandbox Code Playgroud) 嘿伙计们,我想知道如何在一些指定的资源上使用 foreach ......
例如,如果我有这四个资源,我如何使用 foreach 在每个资源上循环执行相同的操作:
test.Properties.Resources.file1
test.Properties.Resources.file2
test.Properties.Resources.file3
test.Properties.Resources.file4
Run Code Online (Sandbox Code Playgroud)