⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resourcenode.cs

📁 全功能c#编译器
💻 CS
字号:
// <file>
//     <copyright see="prj:///doc/copyright.txt"/>
//     <license see="prj:///doc/license.txt"/>
//     <owner name="Georg Brandl" email="g.brandl@gmx.net"/>
//     <version value="$version"/>
// </file>

using System;
using System.IO;
using System.Collections;
using System.Resources;
using System.Windows.Forms;

using ICSharpCode.Core.Services;
using ICSharpCode.SharpDevelop.Services;

using SharpDevelop.Internal.Parser;
using SA = ICSharpCode.SharpAssembly.Assembly;

namespace ICSharpCode.SharpDevelop.AddIns.AssemblyScout
{
	public class ResourceNode : AssemblyTreeNode
	{
		bool isTopLevel;
		
		public ResourceNode(string name, object attribute, bool isTopLevel) 
			: base(name, attribute, isTopLevel ? NodeType.Resource : NodeType.SingleResource)
		{
			this.isTopLevel = isTopLevel;
		}
		
		public override void Populate(ShowOptions Private, ShowOptions Internal)
		{
			if (name.ToLower().EndsWith(".resources")) {
				SA.SharpAssembly assembly = (SA.SharpAssembly)attribute;
				byte[] res = assembly.GetManifestResource(name);
				ResourceReader resreader = new ResourceReader(new MemoryStream(res));
				
				IDictionaryEnumerator en = resreader.GetEnumerator();
			      
			    ArrayList newNodes = new ArrayList();
			    
			    while (en.MoveNext()) {
			    	string nodename = (string)en.Key;
			    	if (en.Value != null) nodename += " : " + en.Value.GetType().Name;
			    	newNodes.Add(new ResourceNode(nodename, en.Value, false));
			    }
			    resreader.Close();
				
				newNodes.Sort(new TreeNodeComparer());
				foreach (ResourceNode resnode in newNodes) {
			    	Nodes.Add(resnode);
				}
			}
			populated = true;
		}
		
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -