Jon*_*ood 6 .net c# asp.net asp.net-mvc
我在ASP.NET MVC应用程序中嵌入了一个资源(一个XSD文件).现在,我想从代码中检索此文件.
查看文档Assembly.GetManifestResourceStream(),它需要一个字符串参数,即"请求清单资源的区分大小写的名称".
好吧,我发现它没有那么有用,当然,在MSDN上找不到任何示例.清单资源的名称是什么?它是文件的名称吗?它是文件的完整路径和名称吗?或者它是一个单独的名称,给予资源本身,如果是这样,我该如何设置该名称?
Ann*_* L. 16
如果我没记错的话,那就是程序集的名称加上文件的全名(包括扩展名),它们之间有一个点.
一个快速查找的方法:使用Assembly.GetManifestResourceNames方法:
string[] result = myAssembly.GetManifestResourceNames();
Run Code Online (Sandbox Code Playgroud)
...并检查result调试器中的内容.
ETA:哎呀,如果你只有一个资源,你可以使用这段代码得到这个名字:
string name = myAssembly.GetManifestResourceNames()[0];
Run Code Online (Sandbox Code Playgroud)
我不建议这样做:我发现有时VS会创建空资源文件并将它们编译到程序集中,因此您可能拥有比您想象的更多的程序集资源.
ETA 2018-06-26:这是我在2013年没有想到的另一种方式.这将根据原始资源的名称为您提供资源名称:
string resourceFileName = "myResource.xsd";
string resourceName = myAssembly.GetManifestResourceNames()
.Where(name => name.Contains(resourceFileName))
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6326 次 |
| 最近记录: |