原文:来自百度空间
using Autodesk.AutoCAD.DatabaseServices;
using System.Reflection;
using System;
namespace LoadedAssemblies
{
public class Commands
{
[CommandMethod("dlls")]
public void ListAssemblies()
{
Assembly[] assems = AppDomain.CurrentDomain.GetAssemblies();
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
const string start = "Version=";
foreach (Assembly assem in assems)
{
string dllname = assem.ManifestModule.Name;
string version = assem.FullName;
if (version.Contains(start))
{
version = version.Substring(
version.IndexOf(start) + start.Length
);
version = version.Remove(version.IndexOf(','));
}
else
{
version = "";
}
ed.WriteMessage("\n \"{0}\" - \"{1}\"",dllname,version);
}
}
[LispFunction("dlls")]
public ResultBuffer GetLoadedAssemblies(ResultBuffer rb)
{
Assembly[] assems = AppDomain.CurrentDomain.GetAssemblies();
ResultBuffer res = new ResultBuffer();
const string start = "Version=";
foreach (Assembly assem in assems)
{
string dllname = assem.ManifestModule.Name;
string version = assem.FullName;
if (version.Contains(start))
{
version = version.Substring(
version.IndexOf(start) + start.Length
);
version = version.Remove(version.IndexOf(','));
}
else
{
version = "";
}
res.Add(new TypedValue((int)LispDataType.ListBegin));
res.Add(new TypedValue((int)LispDataType.Text, dllname));
res.Add(new TypedValue((int)LispDataType.Text, version));
res.Add(new TypedValue((int)LispDataType.DottedPair));
}
return res;
}
}
}