问题标签 [resourcemanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 持久资源管理器 (IEnlistmentNotification) 恢复
我正在通过实现来创建资源管理器IEnlistmentNotification
。我正在尝试创建一个耐用的 RM,这给我带来了一些问题。
每个事务应该有一个
IEnlistmentNotification
对象还是应该由一个IEnlistmentNotification
对象处理所有事务?我认为每个事务都需要它自己的,因此它可以为每个事务执行准备/提交/回滚。
恢复文件如何处理?
我的假设是事务中发生的一切都将在准备期间写入恢复文件。
如何区分每笔交易的信息?我认为每个事务都有一个单独的文件,或者单个文件对于每个恢复操作都有某种事务 id。
当恢复发生时,是否
Transaction.Current.TransactionInformation.DistributedIdentifier/LocalIdentifier
与崩溃前一样?那么,这些 ID 之一能否用于在恢复期间识别事务。恢复如何发生?
如果我在其中
TransactionScope
使用了我的资源管理器,并且系统在范围中间崩溃(拔出插头或其他),那么当系统启动备份时如何进行恢复?我假设一些正在运行代码的进程在它的范围内知道系统崩溃或什么?在这种情况下,设置了哪些系统/程序/服务来实际处理恢复?
c# - ResourceManager - 如何为嵌入式资源文件找到所需的基本名称?
我有一个库从外部文件加载资源,如下所示:
现在我想将加载从外部文件更改为嵌入式资源。我已将“.resources”文件附加到项目中,并将其构建操作更改为“嵌入式资源”。加载如下:
这编译得很好。但是,在运行时,应用程序会报告以下错误:
找不到适合指定区域性或中性区域性的任何资源。确保“Strings.3.resources”在编译时被正确嵌入或链接到程序集“TestApp.Resources”中,或者所有所需的附属程序集都是可加载的并且是完全签名的。
无论我通过什么名称都会发生这种情况,所以我的问题是如何为我刚刚嵌入的资源文件找到正确的基本名称?
c# - 使用资源管理器
我正在尝试在 C# 类中使用 ResourceManager,但在创建 ResourceManager 类的新实例时不知道用什么替换基名。
我有一个单独的项目,其中包含我上面的项目引用的资源文件,名称如下:
- 资源.resx
- 资源.es-ES.resx
如果我有如下代码片段,当我想使用英语或西班牙语版本的资源时,我应该用什么代替基本名称?
我尝试了 Tom 建议的方法,但遇到了臭名昭著的错误
找不到适合指定区域性或中性区域性的任何资源。
我的解决方案有两个项目,其中项目 YeagerTech 是一个 Web 应用程序,项目 YeagerTechResources 包含所有资源。Project YeagerTech 参考了 YeagerTechResources。
创建资源管理器时,我有以下语法:
显然,这是不正确的。
YeagerTechResources 项目中的资源文件的 BuildAction 设置为 Embedded Resource。
我的资源文件的名称是:Resources.resx 和 Resources.es-ES.resx。
如果有人可以在实例化资源管理器时根据我的项目和资源文件名简单地告诉我要使用的确切语法,我将不胜感激......
我已经做了我能想到的一切来解决这个问题,但不能......
这是我最后一次尝试在这里解决它......
执行上述代码后出现以下错误:
找不到适合指定区域性或中性区域性的任何资源。确保“YeagerTechResources.Resources.resources”在编译时正确嵌入或链接到程序集“YeagerTech”中,或者所有所需的附属程序集都是可加载的并且完全签名。
我可以毫无问题地使用 HTML 标记中的资源,但是在控制器中使用 C# 代码时,我不断收到上述错误。
非常感谢根据我的项目对我需要的确切语法的任何帮助。
c# - Resourcemanagers 资源集的值错误
我正在开发一个使用本地化 resx 资源文件的 wpf / prism 4 应用程序。经过一些调试(它没有按预期工作)我看到我的资源管理器的所有资源集都具有相同的值。默认 loc.resx 的值。
我的问题是:那里出了什么问题?
先感谢您
c# - 在运行时快照给定资源键的所有资源值
我们有一个作业服务器来处理从网站提交的作业。网站的程序集被打包并作为作业的一部分提交到作业服务器(包括所有附属资源程序集)。
这些程序集在作业处理开始之前通过: Assembly.Load( byte[] ) 加载。
在作业处理过程中,我们需要对资源字符串(即验证消息)进行快照。请注意,简单地存储资源密钥不是一个选项,因为验证规则/消息可能会随着时间而改变,如果他们回来查看以前处理的作业/消息,我不希望显示“最新”资源字符串。我需要显示作业处理时的值。而且我需要每个支持的文化信息的快照,以便我可以在网站线程正在运行的适当文化中显示信息。
为了尝试检索消息,网站程序集指定支持哪些语言环境,因此在作业服务器上,我执行以下操作来创建网站程序集的 ResourceManager:
这很好用,我得到了一个 ResourceManager,但是,给定一个 XElement 验证规则和一个字符串 [] 语言环境,以下代码“不起作用”:
本质上,无论我传入什么 CultureInfo,我都会收到默认(en-US)文化的消息。
AppDomain.CurrentDomain.GetAssemblies() 显示加载的网站程序集和附属程序集:
{ABCCorp.ServiceModel,版本=6.0.4497.18334,文化=中性,PublicKeyToken=null} System.Reflection.Assembly {System.Reflection.RuntimeAssembly} {ABCCorp.ServiceModel.resources,版本=6.0.4497.18334,文化=fr-FR, PublicKeyToken=null} System.Reflection.Assembly {System.Reflection.RuntimeAssembly}
但是,如果我在监视窗口中尝试以下操作(与上面的代码相同),我会得到 en-US 版本:
rm.GetString("ResourceKey", new CultureInfo("fr-FR"))
最后,大概我们都熟悉 LINQPad :) 以下脚本“有效”。我没有对 ABCCorp 的 ServiceModel.dll 或卫星 dll 的任何引用。
任何建议将不胜感激。
更新: 根据 Joe 的建议,这是我们最终得到的代码。byte[] 内容是一个 zip 文件,其中包含网站程序集和所有卫星资源程序集(如果存在)。
toolbar - Ext.NET GridPanel 顶部栏工具栏按钮在 DirectEvent 上引发内部服务器错误 500 未在后面的代码中引发
我将 Ext.NET 与 VS2008、ASP.NET 一起使用。我有一个独特的问题,我无法找到任何解决方案。
有一个 GridPanel,在 TopBar 中有一个删除按钮。Grid 使用 RowSelection 模型。选择行后,用户单击删除按钮。引发客户端事件以进行确认以下是代码片段
但问题是我在单击“是”后收到以下消息,基本上是 500 内部服务器错误。
以下是我在 Fiddler 中找到的内容:
结果 协议 主机 URL 正文 缓存 内容类型 进程 注释 自定义
1 500 HTTP onyx /pages/sanction.aspx?_dc=1337773867270 4,268 私有文本/html;字符集=utf-8 铬:920
VS2008 的调试器不起作用,因为后面代码上的事件永远不会引发。工具栏上的其他按钮工作得很好。有谁知道我在这里想念什么?
c# - 我应该为每个 Web 请求使用静态缓存的 ResourceManager 还是一个新实例?有关系吗?
ResourceManager
使用.Designer.csnew ResourceManger(myResourceType.FullName, myResourceType.Assembly)
生成的类MyResourceType.ResourceManager
(
我正在使用 .resx 文件的 ASP.NET MVC 3 应用程序的上下文中工作。
编辑:我对为新对象分配内存的成本之外的影响感兴趣。
编辑:查看 MSDN 文档ResourceManager.ReleaseAllResources
,它指出:
This method will shrink the working set in a running application. Any future resource lookups on this ResourceManager will be as extensive as the first lookup, since it will need to search and load resources again.
这似乎意味着资源集的初始开放是昂贵的,这对我来说意味着在每个请求上创建一个新的管理器可能会很昂贵。但是,文档并未就资源管理器的生命周期/范围提出最佳实践。
c# - 尽管指定了 CultureInfo,但 Resourcemanager 正在返回相同的资源
一个非常简单的事情,我无法让它工作。我想全球化我的dll,因此我使用资源文件+ ResourceManager。
我这样调用资源管理器:
得到这样的字符串
它返回 4 次相同的字符串。我的文件被称为
所有文件设置都相同,但如前所述 - 仅使用默认文件中的资源。
我在这里俯瞰什么?
actionscript-3 - Flex 资源管理器在一个文件中完美运行,而在另一个文件中则完全没有
我正在尝试在 Flex 中使用 resourceManager 进行一些本地化。我遇到了一个奇怪的问题,它在我尝试过的第一个文件中运行良好,但在第二个文件中它甚至无法编译。
两个文件都有
在顶部和
在类定义之上。第一个编译得很好,并在运行时正确地从资源中提取文本。
第二个文件(在同一个项目但不同的文件夹中)将无法编译,并且每次提到 resourceManager 都会给出错误“1120:未定义属性资源管理器的访问”。
对于两种不同的用途:
在有效的文件中:
以及不起作用的文件:
我想不出我在这两个文件中所做的任何不同。
编辑,解决:
resourceManager 在所有 UIComponent 子类中定义。有效的文件导入了 ComboBox。没有的文件。在这些文件中,我可以通过调用使其工作:
c# - ResourceManager 会自动加载所有文化吗?
我有一个类库 - 称之为框架。在 assemblyinfo.cs 中,我有:
在 \Resources\ 目录下,我有FrameworkResources.resx和FrameworkResources.fr-FR.resx
在一个助手类中,我使用它作为我的资源管理器:
在代码中,如果我这样做:
我可以调试并将鼠标悬停在 CurrentCulture 上,它(和 UICulture)设置为 fr-FR,但这总是带回我的默认英文消息 - 而不是 fr-FR 资源文件中的法语消息。
ResourceManager 应该自动将其连接起来,还是我应该编写代码来查询当前的文化,然后打开正确的文件?假设资源管理器知道获取 fr-FR 字符串,我是否不正确,因为那是当前的文化?
我不确定为什么这不起作用。
更新: 我有附属程序集,所以相信编译部分进展顺利。我认为问题出在我的资源管理器上。我尝试使用 ResourceSets 并像这样显式使用 ResourceManager:
结果是:
因此,即使一切就绪,我的资源管理器也不会尝试查看那些附属程序集。需要明确的是,在这些程序集中,我有上面字符串的翻译版本 - 所以它肯定是从我的默认 FrameworkResources.resx 文件中读取的,而不是特定于文化的文件。