写一个C#的程序,可能会用到一些资源和配置文件,在C#中有两种方式来暴露我们的资源,一个是Embedded Resource,一个是直接放到运行的目录下(通过Copy to local) 。对于不希望发布后能够被用户修改的资源,应该使用Embedded Resource,而那些希望用户修改的配置就直接Copy to local放到编译好的目录中就好了。对于Embedded Resource,还有一个好处是用户只需要拿到Assembly就可以了。Resource是和Assembly绑定在一起的。不会搞的一大堆的文件。那么,应该如何使用Assembly中的Embedded Resource呢?引用别人的一个列子吧。也算是给自己的一个笔记
/假设/WordProcessingML是项目的名称空间
string str = "WordProcessingML.emptyDoc.xml";
//可以使用System.Reflection.Assembly.GetExecutingAssembly().GetName().Name获得默认名称空间
//也可以写成这样,比较灵活string str = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".emptyDoc.xml";
System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(str);
string strXml = string.Empty;
System.IO.StreamReader sr = new System.IO.StreamReader(stream);
{
strXml = sr.ReadToEnd();
}
m_xmlDocument.LoadXml(strXml);
重点就是拿到这个resource的 Stream
此外就是Embedded Resource在加载时候的命名问题,首先是项目的默认的命名空间的名字,然后是Dot'.',然后如果是项目文件夹外的资源或者是项目文件夹下的直接资源(没有子文件夹),那么名称就是DefaultNameSpace.ResourceName,如果有子文件夹,那么就是DefaultNameSpace.ChildFolder1.ChildFolder2.ResourceName即可。
分享到:
- 2008-05-01 18:09
- 浏览 2976
- 评论(0)
- 论坛回复 / 浏览 (0 / 2616)
- 查看更多
相关推荐
首先,我们需要理解磁盘共享的基本概念,它是通过网络将本地计算机的磁盘资源暴露给其他网络上的用户,以便于数据传输和协作。 在C#中,我们可以利用.NET Framework提供的System.IO和System.Net命名空间中的类来...
若需跨域调用C# Web服务,服务器需要开启CORS(Cross-Origin Resource Sharing)策略。在C# Web服务中,可以通过设置Web.config或使用过滤器来允许特定的跨域请求。 7. **数据格式化** 当与C# Web服务交互时,数据...
金蝶K/3是一款广泛使用的ERP(Enterprise Resource Planning)系统,BOS是其提供的一个开发平台,允许开发者定制和扩展系统功能。下面,我们将详细讲解开发环境的搭建、数据库连接字符串的提取以及插件的实现步骤。 ...
- 遵循 RAII(Resource Acquisition Is Initialization)原则,资源在创建时初始化并在不再使用时自动释放。 - 使用 const 关键字标记不可修改的变量和函数参数。 - 避免使用全局变量,减少副作用。 ### 共享规范 -...
为解决这个问题,服务器端需要设置合适的CORS(Cross-Origin Resource Sharing)策略,允许特定的源进行访问。 7. **错误处理** 在C#和JavaScript交互中,错误处理是必不可少的。JavaScript的Ajax请求通常有...
在JavaScript(JS)中,由于同源策略的限制,我们不能直接从网页中访问...但要注意,由于涉及到安全问题,通常不建议在生产环境中直接暴露这些信息。应采取安全措施,如证书验证、授权机制等,以确保数据传输的安全性。
public const string LIB_NAME = "Resource.cs"; public static int OpenLib(ILuaState lua) { var define = new NameFuncPair[] { new NameFuncPair("Load", Load), }; lua.L_NewLib(define); return 1; }...
由于操作系统为了安全和效率,通常不直接暴露对象的内存地址,而是使用句柄作为中间桥梁。这样,即使对象的内存位置发生变化,句柄仍然有效,因为系统会负责更新句柄所对应的内存地址。 **3. 获取句柄的方法** - **...
但是,可以通过CORS(Cross-Origin Resource Sharing,跨源资源共享)机制实现跨域。在服务端,需要在响应头中添加`Access-Control-Allow-Origin`字段,指定允许跨域请求的源。 3. **WebService.asmx**:这是ASP...
1. VC调用:可以使用`LoadLibrary`和`GetProcAddress`函数来加载DLL和获取函数指针,然后调用DLL中暴露的接口函数来创建和显示对话框。 2. VB调用:在VB中,使用`DllImport`特性来声明DLL导入,然后像调用普通函数...
跨域调用是解决这一问题的关键技术。在本实例中,我们将讨论如何使用JS实现跨域调用WebService。"JqCrossDomain"这个文件名可能指的是使用jQuery库来处理跨域请求,因为jQuery提供了一些方便的方法来简化这个过程。 ...
此文件包含了针对C#、VB.NET等.NET语言的安全检查,确保开发者遵循最佳实践,防止内存管理不当、代码注入等问题的发生。 “core_php.bin”用于PHP代码的静态分析,随着PHP在Web开发中的广泛应用,确保其安全性变得...
- **容器连接点**:服务器对象通过IConnectionPointContainer接口暴露其所有连接点,客户端可以查询并选择感兴趣的接口进行连接。 **MFC中的COM连接点实现** 在MFC中,使用CConnectionPoint类来表示一个连接点。...
- CORS(Cross-Origin Resource Sharing):这是一种现代浏览器支持的机制,允许服务器指定哪些源可以访问其资源。WCF服务端设置`Access-Control-Allow-Origin`头来允许特定的源进行跨域请求。 在提供的...
SharedAccessSignature (SAS) 是 Azure 平台上广泛使用的安全机制,允许应用程序通过共享访问密钥来授权对特定资源的访问,而无需直接暴露这些密钥。它在多个 Azure 服务中都有应用,如 Azure Service Bus 和 Azure ...
URL(Uniform Resource Locator)是互联网上资源的唯一标识,包含了服务器地址、路径以及可能的查询参数。传统的URL会暴露出应用程序的内部结构,如脚本文件路径和数据库信息,这不仅可能导致安全隐患,还可能影响...
摘要认证是HTTP协议中的一个标准身份验证方法,它比基本认证更安全,因为它在传输过程中不直接暴露用户的明文密码。本文将深入探讨WebAPI摘要认证的原理、配置以及如何在Winform应用中调用WebAPI。 摘要认证基于...
WCF服务可以通过SOAP协议暴露,也可以通过RESTful风格暴露,具有高度的灵活性和可扩展性。 然后,WebService是一种基于标准和开放协议的Web应用程序,可以跨越不同的操作系统和软件平台,提供互操作性的服务。最...
本书会介绍有效的内存管理策略,如使用RAII(Resource Acquisition Is Initialization)原则,以及何时和如何使用内存池。 4. **输入验证**:不严格的输入验证可能让攻击者输入恶意数据。书中将讲述如何有效地验证...
在Cognito用户池的设置中,找到“自定义消息”选项,然后输入Lambda函数的ARN(Amazon Resource Number),这将把自定义消息功能指向你的Lambda函数。 四、自定义消息示例 在`CustomMessage`方法中,我们可以根据...