📄 resourcenode.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 + -