我正在创建一个通用DLL,它可以从模型创建文档,可以用于winForms或webForms。它由我用某些参数实例化的主类组成。 我希望我的DLL能够在资源文件中查找而不必被限制为1技术。
那么说,我知道如何在WebForm中访问我的资源文件(*.resx
):
HttpContext.GetGlobalResourceObject("Global", "myLabel")
我有一些限制:
*.resx
重命名为*.resource
,因为它们已在应用程序中使用<%resource(Global,myLabel)%>
我一直在寻找使用ResourceManager
传递类的资源对象,但它永远不会抓住我的*.resx
文件。
有谁知道如何实现最终目标?将资源对象传递给类,从类中获取资源对象。
答案 0 :(得分:1)
好的,我发现了如何做到这一点。
在我的DLL中,我重载了构造函数,允许给它一个ResourceManager
对象。所以这就是我所拥有的:
对于模型文件:
\paragraph
[
Style = "Normal"
]
{
<%resource(lblMontant)%> : <%montant%>
}
对于使用ResourceManager
:
public Reporter(String inputModel, String outputPdf, Dictionary<String, IParameter> parameters, ResourceManager resman)
{
// Assigne parameters to globals
_sourceFile = inputModel;
_destinationFile = outputPdf;
_parameters = parameters;
_rm = resman;
Worker();
}
private String parseResource(String val)
{
MatchCollection _matches = _resourceMatcher.Matches(val);
foreach (Match _match in _matches)
{
String _item = _match.Groups["item"].Value;
val = val.Replace(_match.Groups[0].Value, String.Format("{0}", _rm.GetObject(_item)));
}
return val;
}
对于来电者,我们使用被视为类的Resources.global
:
ResourceManager _rm = new ResourceManager(typeof(Resources.global));
Reporter _cl = new Reporter(modelFilePath, outputFilePath, _params, _rm);
如果这对其他人有用而某些人需要更多细节,请不要犹豫;)