从单独的DLL库中的ASP.NET App_GlobalResources获取资源

时间:2010-05-02 11:26:18

标签: c# asp.net resources get

我有一个带有一个Web项目和一个类库的解决方案。在Web项目中,我有App_GlobalResources文件夹和资源文件。在Web项目中使用的代码中,我可以像这样访问resourcel: string r = Resources.res.ResourceString123;

如何从类库中获取此资源字符串?

3 个答案:

答案 0 :(得分:1)

我还为我的Web项目和类库使用单独的程序集。我需要访问我的ModelBinder的Web项目中的App_GlobalResources。我通过这种方法访问资源(参见:A Beginner's Guide to ASP.NET Application Folders)。

HttpContext.GetGlobalResourceObject( string classKey , string resourceKey )

有一点需要注意的是,你需要通过我的ModelBinder中的controllerContext访问HttpContext。

我的ModelBinder代码如下:

var errorMessage = controllerContext.HttpContext.GetGlobalResourceObject( "DefaultModelBinder" , "PropertyValueRequired" ) as string;

上面允许我在ASP.NET的默认错误消息和我的ModelBinder上有一致的错误消息,即使我将它们放在不同的程序集中。

答案 1 :(得分:0)

在.net 2.0中,您需要将InternalsVisibleTo属性添加到程序集&将其设置为需要访问该文件的命名空间:

MSDN:http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx

另一个选择可能是在类库中创建一个可以返回所需字符串的类......

HTH。

答案 2 :(得分:0)

如果使用visual studio 2008,您可以在类库的Resource designerpublic设置访问修饰符。