📄 codeparser.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Security;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using System.CodeDom;
using System.CodeDom.Compiler;
namespace gowk.GXF
{
/// <summary>
/// CodeParser 的摘要说明。
/// </summary>
public class CodeParser
{
public CodeParser()
{
}
public AssemblyColletion Parse(XmlDocument doc)
{
AssemblyColletion ac=new AssemblyColletion();
foreach(XmlNode codes in doc.GetElementsByTagName("codes"))
{
foreach(XmlNode xn in codes.ChildNodes)
{
if(xn.Name.ToLower()=="code")
{
if(xn.Attributes["Assembly"]!=null)
{
try
{
if(System.IO.File.Exists(xn.Attributes["Assembly"].Value))
ac.Add(Assembly.LoadFrom(xn.Attributes["Assembly"].Value));
}
catch(System.Exception ex)
{
throw;
}
}
else
{
Script sc=new Script();
if(xn.Attributes["language"]!=null)
{
sc.Language=xn.Attributes["language"].Value;
}
foreach(XmlNode rf in xn.ChildNodes)
{
if(rf.Name.ToLower()=="reference")
{
if(rf.Attributes["assembly"]!=null)sc.References.Add(rf.Attributes["assembly"].Value);
}
}
if(xn.Attributes["file"]!=null)
{
string file=xn.Attributes["file"].Value;
if(File.Exists(file))
{
StreamReader sr=new StreamReader(file);
sc.SourceCode=sr.ReadToEnd();
sr.Close();
}
}
else
{
sc.SourceCode=xn.InnerText;
}
if((sc.SourceCode!=null)&&(sc.SourceCode!=string.Empty))
{
AssemblyGen ag=new AssemblyGen();
Assembly asm=ag.CreateAssembly(sc);
if(asm!=null)ac.Add(asm);
}
}
}
}
}
return ac;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -