一个读取扩展名为xml的资源文件的方法

Posted on 2006-11-27 18:34 karoc 阅读(647) 评论(9)  编辑 收藏 所属分类: 代码分享

今天重构代码时,想把如下xml文件嵌入程序集中,在运行时读取:

<?xml version="1.0" encoding="utf-8"?>
<Convertors xmlns="http://tempuri.org/~vs24E.xsd">
    
<Convertor>
        
<Name>1</Name>
        
<Category>1</Category>
        
<Description>1</Description>
    
</Convertor>
    
<Convertor>
        
<Name>2</Name>
        
<Category>2</Category>
        
<Description>2</Description>
    
</Convertor>
    
<Convertor>
        
<Name>3</Name>
        
<Category>3</Category>
        
<Description>3</Description>
    
</Convertor>
</Convertors>

到处找了一番,都是关于读取.txt和.resx类型的嵌入资源的,后来灵光一现,试出以下方法:

private static ConvertorData GetConvertorData()
        
{
            Assembly assembly 
= typeof(ConvertorProvider).Assembly ;
            System.IO.Stream stream 
= assembly.GetManifestResourceStream("TextConvertor.Convertor.xml") ;

            ConvertorData data 
= new ConvertorData() ;
            data.ReadXml(stream) ;
            
return data ;
        }

大概是先得到Assembly对象,然后得到流对象,以后就好办了,要不读到XmlDocument,要不读到根据xml文件生成的数据集中。

Feedback

#1楼   回复  引用    

2006-12-14 14:56 by dsaf[未注册用户]
ConvertorData 是什么类型?

#2楼[楼主]   回复  引用  查看    

2006-12-14 14:58 by karoc(卡卡)      
是根据Xml架构生成的数据集

#3楼   回复  引用    

2006-12-14 15:26 by dsaf[未注册用户]
我水平太低了,搞不懂,我也想从xml资源文件中读取数据,可是资源文件中是字符串。我看到了你的例子我想把xml资源文件转成
System.IO.Stream sream
然后
XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(sream);

行吗?

Assembly assembly = typeof(ConvertorProvider).Assembly ;
ConvertorProvider 是?我不能用啊

#4楼[楼主]   回复  引用  查看    

2006-12-14 15:30 by karoc(卡卡)      
可以,ConvertorProvider是该方法所在的类吧

#5楼   回复  引用    

2006-12-14 16:17 by dsaf[未注册用户]
读出来的sream总是null

#6楼[楼主]   回复  引用  查看    

2006-12-14 16:54 by karoc(卡卡)      
“TextConvertor.Convertor.xml”中TextConvertor是命名空间,Convertor.xml是文件名,用Reflector可以看到

#7楼   回复  引用    

2006-12-14 17:13 by dsaf[未注册用户]
呵呵。。。好了能读了。

也可以用
XmlDocument xmlDoc = new XmlDocument();

xmlDoc.LoadXml(Resources.xmlFile);


Resources.xmlFile就是资源文件

#8楼   回复  引用    

2006-12-14 17:14 by dsaf[未注册用户]
谢谢!!!!!!!!!!

#9楼[楼主]   回复  引用  查看    

2006-12-14 17:18 by karoc(卡卡)      
不客气



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 574215




相关文章:

相关链接:

posts - 20, comments - 19, trackbacks - 3, articles - 0

Copyright © karoc