我本来是这么写的,当字典中的对象不是DBDictionary时,就出错了 - namespace Lab1
- {
- public class Class1
- {
- public String blank="";
-
- [CommandMethod("cdd")]
- public void CreateDivision()
- {
- Database db = HostApplicationServices.WorkingDatabase;
- Transaction trans = db.TransactionManager.StartTransaction();
- Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
- try
- {
- DBDictionary NOD = (DBDictionary)trans.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForWrite);
- foreach (DBDictionaryEntry d in NOD)
- {
- blank = "";
- searching(d);
- }
- trans.Commit();
- }
- finally
- {
- trans.Dispose();
- }
- }
- public void searching(DBDictionaryEntry searched)
- {
- Database db = HostApplicationServices.WorkingDatabase;
- Transaction trans = db.TransactionManager.StartTransaction();
- Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
- DBDictionary temp_dict;
- ed.WriteMessage("\n"+blank +searched.Key);
- try
- {
- temp_dict = (DBDictionary)trans.GetObject(searched.m_value, OpenMode.ForRead);
- if (temp_dict.Count != 1)
- {
- blank += " ";
- foreach (DBDictionaryEntry temp in temp_dict)
- {
- searching(temp);
- }
- }
- trans.Commit();
- }
- catch
- {
- ed.WriteMessage("\nError @ " + searched.Key);
- }
- finally
- {
- trans.Dispose();
- }
- }
- }
- }
|