У меня есть функция, которая возвращает Entity по ObjectID
Вот такой код
Public Shared Function acadnet_Entity_GetByID(ByVal ID As CAD_DBS.ObjectId, _
ByVal db As CAD_DBS.Database) As CAD_DBS.Entity
Dim ent As CAD_DBS.Entity = Nothing
Using trans As CAD_DBS.Transaction = db.TransactionManager.StartTransaction
Try
Dim dbObj = trans.GetObject(ID, CAD_DBS.OpenMode.ForRead, False, True)
ent = DirectCast(dbObj, CAD_DBS.Entity)
Catch ex As System.Exception
End Try
trans.Commit()
End Using
Return ent
End Function
К примеру я буду использовать эту функцию в подпрограмме TEST
с условием, что полученный объект будет использоваться только для чтения
(мне нужно получать разные его поля в зависимости от типа примитива)
Вот так:
Public Shared Sub TEST()
Dim id As CAD_DBS.ObjectId
Dim db As CAD_DBS.Database
'...
' Инициализация id и db
'...
Dim getEnt As CAD_DBS.Entity = acadnet_Entity_GetByID(id, db)
If getEnt IsNot Nothing Then
' объект getEnt буду использовать только для чтения данных его полей
End If
End Sub
У меня есть подозрение, что если программировать в таком стиле, то есть вероятность ошибок,
т.к. не контролирую состояние полученного объекта getEnt.
Я думаю, что лучше так не делать.
Хочу услышать мнения экспертов?