1

我正在运行一个引用类库的 MVC 项目。类库包含一个构建操作设置为“嵌入式资源”的javascript文件。

文件实际上发生了什么?我似乎无法使用它来获取它,ResourceManager因为我不知道它将资源放入的命名空间。

我的类库文件结构:

  • /项目
  • /项目/网站
  • /项目/Web/Js
  • /Project/Web/Js/Test.js << 嵌入式资源

代码:

var t = this.GetType().Assembly;
var r = new System.Resources.ResourceManager("Namespace", t); //What is the namespace here?
var js = r.GetObject("Test.js");
4

1 回答 1

1

抱歉,我现在无法访问编译器,因此以下内容可能包含轻微错误。

var asm = typeof(MyClass).Assembly;
var stream = asm. GetManifestResourceStream("<rootnamespace>.Project.Web.Js.Test.js");
var reader = new StreamReader(stream);
String source = reader.ReadToEnd();

笔记:

  • 使用typeof(x)而不是GetType(). 如果从类型继承,后者将给出不正确的结果。
  • rootnamespace 可以在项目设置中找到/设置。(在我的示例中,我假设“Project”是项目内的一个文件夹)
  • asp.net 有一个以这种方式使用资源的预构建解决方案。试着调查Page.ClientScript一下。(我不确定这是否也适用于 MVC,但我敢打赌它会)
于 2012-10-24T22:44:35.760 回答