Tag Archives: C#

C#实现文件关联

和其他语言一样,C#实现文件关联同样需要直接操作注册表,即按规则分别设置文件扩展名,文档类型说明,友好名称,图标,调用方法等键值即可,网上随便查查就可以写出以下的代码。 using Microsoft.Win32; RegistryKey key = Registry.ClassesRoot.OpenSubKey(".jb"); if (key == null) {     key = Registry.ClassesRoot.CreateSubKey(".jb");     key.SetValue("", "Jeebook.Reader.jb");     key.SetValue("Content Type", "application/jb");     key = Registry.ClassesRoot.CreateSubKey("Jeebook.Reader.jb");     key.SetValue("", "Jeebook Document");     RegistryKey keySub = key.CreateSubKey("DefaultIcon");     keySub.SetValue("", System.Windows.Forms.Application.StartupPath + … Continue reading

Posted in C#, 软件技术 | Tagged , , , | Leave a comment

C#中使用Xslt 2.0处理器

用C#处理Xslt 2.0的时候,才发现原来.Net并没有提供对Xslt 2.0的支持,毕竟Xslt 2.0目前更多的还是纸面上的标准,而且微软的动作一向速度有限。 于是开始找专门的Xslt 2.0处理器。 首先找到的是Saxon,不知道是不是逐步商业化的缘故,Saxon版本显得有点凌乱。在9.1,分成商用的SA版,开源的B版;到了9.2又改成商用的EE企业版,PE专业版和开源的HE家庭版,加上每个版本又都分成java版和.Net版,看得都有点眼晕。 不管怎样直奔最新版本,先下了9.2 HE .NET版,结果发现处理中总是会有出现编码异常,貌似是Saxon的一个BUG,因为也其他有人碰到同样的问题,据说是换上9.1就没有好了。 于是换上9.1 B版,果然什么问题都没有了。察看文件9.2在支持库的部署方式上作了大的调整,可能是因为这个缘故导致的吧。(一个小问题,9.1中包含的IKVM.OpenJDK.ClassLibrary.dll,一个文件就26M,无论如此无法提交到Google Code,而在9.2中,这个大文件被分割成了几个相对小的问题) Saxon在调用上,最简单的方式是使用SaxonWarpper,代码类似.Net本身的方式。其实SaxonWarpper自己也不过是几行代码而已,所以直接调用Saxon也不会复杂到哪儿去,下面是一段处理Xslt 2.0的代码:         /// <summary>         /// 使用Saxon处理Xslt 2.0         /// </summary>         /// <param name="strXml">字符串形式的XML数据</param>         /// <param name="strXsl">字符串形式的XSLT数据</param>         /// <returns>处理后的XML字符串</returns>         public static string … Continue reading

Posted in XML | Tagged , , , | Leave a comment