gpt4 book ai didi

c# - list 资源 (Assembly.GetManifestResourceStream) 的资源名称是什么?

转载 作者:太空狗 更新时间:2023-10-29 20:54:51 27 4
gpt4 key购买 nike

我在我的 ASP.NET MVC 应用程序中嵌入了一个资源(一个 XSD 文件)。现在,我想从代码中检索此文件。

查看 Assembly.GetManifestResourceStream() 的文档,它需要一个字符串参数,即“被请求的 list 资源的区分大小写的名称”。

嗯,我觉得这不是很有帮助,当然,在 MSDN 上也找不到示例。 list 资源的名称是什么?是文件名吗?它是文件的完整路径和名称吗?或者它是赋予资源本身的单独名称,如果是,我该如何设置该名称?

最佳答案

如果我没记错的话,它是程序集的名称加上文件的全名(包括扩展名),它们之间有一个点。

确定的快速方法:使用 Assembly.GetManifestResourceNames方法:

string[] result = myAssembly.GetManifestResourceNames();

... 并在调试器中检查 result 的内容。

ETA:哎呀,如果你只有一个资源,你可以只使用这个代码来获取名称:

string name = myAssembly.GetManifestResourceNames()[0];

不过,我不建议这样做:我发现有时 VS 会创建空资源文件并将它们编译到程序集中,因此您可能拥有比您想象的更多的程序集资源。

ETA 2018-06-26:这是另一种让我感到惊讶的方式,我在 2013 年没有想到。这将根据原始资源的名称为您提供资源名称:

string resourceFileName = "myResource.xsd";
string resourceName = myAssembly.GetManifestResourceNames()
.Where(name => name.Contains(resourceFileName))
.FirstOrDefault();

关于c# - list 资源 (Assembly.GetManifestResourceStream) 的资源名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15276969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com