Я пытаюсь связать внешние ссылки в базе данных чертежей с боковой загрузкой. программа останавливается на этой строке 'if(!xNode.Database.Filename.Equals(NewDb.Filename))'. я также получаю эту ошибку «System.NullReferenceException: ссылка на объект не указывает на экземпляр object.at XBind.RecursiveFileProcessor.ProcessFile (строковый путь)». Я провел некоторое исследование и нашел код VB.NET для прикрепления внешней ссылки и безуспешно попытался экстраполировать это. Я был бы признателен, если бы кто-то указал мне правильное направление в этом.
using (Database NewDb = new Database(false, true))
{
NewDb.ReadDwgFile(path, FileOpenMode.OpenForReadAndWriteNoShare, true, "");
NewDb.CloseInput(true);
using (Transaction tr = NewDb.TransactionManager.StartTransaction())
{
ObjectIdCollection xrefCollection = new ObjectIdCollection();
XrefGraph xg = NewDb.GetHostDwgXrefGraph(false);
int numOfNodes = xg.NumNodes;
for (int cnt = 0; cnt < xg.NumNodes; cnt++)
{
XrefGraphNode xNode = xg.GetXrefNode(cnt) as XrefGraphNode;
if (!xNode.Database.Filename.Equals(NewDb.Filename))
{
if (xNode.XrefStatus == XrefStatus.Resolved)
{
xrefCollection.Add(xNode.BlockTableRecordId);
}
}
}
if (xrefCollection.Count != 0)
{
NewDb.BindXrefs(xrefCollection, true);
}
tr.Commit();
}
NewDb.SaveAs(path, DwgVersion.Current);
}