问题很简单:如何在 ASP.NET 应用程序中使用嵌入式资源?将资源包含在程序集中的步骤是什么,以及如何引用它?可能会遇到哪些问题?
编辑:对于未引用 Page 和 ClientScript 的版本,请参阅在 Razor 视图上处理嵌入式资源的正确方法是什么? https://stackoverflow.com/a/47401175/113108
经过半天的学习,我明白了:
要嵌入资源,需要设置它的构建行动 to 嵌入式资源(在 VS 解决方案资源管理器中右键单击文件 -> 属性)
-
next 程序集信息.vb必须进行修改以使该资源可用于 WebResource 查询。添加[Assembly: System.Web.UI.WebResource("MyWebResourceProj.Test.css", "text/css")]
到位于项目的 MyProject 文件夹中的 AssemblyInfo.vb。
- 名称由根命名空间/程序集名称+'.'+文件名组成。要 100% 确定该名称,请使用以下代码片段进行查找:
Dim resNames = Assembly.LoadFile("YourDll.dll").GetManifestResourceNames()
- 请注意,装配体的根命名空间必须与程序集名称相同(这花了我大约 4 个小时才意识到。至少对于 .Net v4 来说是这样)
- 如果 css ( ) 中有引用,则为该 css 的 WebResource 属性传递 PerformSubstitution:=true 。
-
可以通过以下方式引用资源Page.ClientScript.GetWebResourceUrl(GetType(MyWebResourceProj.ConssumingPage), "MyWebResourceProj.Test.css")
- 请注意,可以使用 Me.GetType() 代替 GetType(Typename),但同样,如果该类是继承的,则该方法将不起作用,因此请注意!
资源:
- 调试 ASP.NET 2.0 Web 资源:解密 URL 并获取资源名称 http://blogs.telerik.com/hristodeshev/posts/07-03-26/debugging_asp_net_2_0_web_resources_decrypting_the_url_and_getting_the_resource_name.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)