Как правильно сделать транзакцию C#

Автор Тема: Как правильно сделать транзакцию C#  (Прочитано 4833 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн StonerАвтор темы

  • ADN OPEN
  • Сообщений: 34
  • Карма: 0
Здравствуйте.
Подскажите как сделать правильно:
Пытаюсь из листинга http://forums.autodesk.com/t5/autocad-civil-3d-customization/points-api-in-2012/m-p/3185062#M5888 на VB
состряпать свой код на C#.
Вот застрял на транзакции:
Код - C# [Выбрать]
  1. [CommandMethod("GetCoordCOGObyNum")]
  2.         public float[] GetCoordCOGObyNum(uint num)
  3.         {
  4.             Autodesk.AutoCAD.Interop.AcadApplication oAcadApp = null;
  5.             Autodesk.AECC.Interop.UiLand.AeccApplication oAeccApp = null;
  6.             Autodesk.AECC.Interop.UiLand.AeccDocument oAeccDoc = null;
  7.             Autodesk.AECC.Interop.Land.AeccDatabase oAeccDB = null;
  8.             Transaction trans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction();
  9.             using (trans)
  10.             {
  11.                 try
  12.                 {
  13.                     if (oAcadApp==null) oAcadApp=GetObject(,"Autocad.Application");
  14.                 }
  15.                 catch (Exception ex)
  16.                 {
  17.                     ed.WriteMessage(ex.Message);
  18.                 }
  19.                 try
  20.                 {
  21.                     oAeccApp=oAcadApp.GetInterfaceObject("AeccXUiLand.AeccApplication.9.0");
  22.                     oAeccDoc=oAeccApp.ActiveDocument;
  23.                     oAeccDB=oAeccApp.ActiveDocument.Database;
  24.                 }
  25.             ed.WriteMessage("Получение координат точки COGO c номером ",num," .....");
  26.             float[] GetCoorfCOGObyNum=new float[2];//сюда будут записаны координаты
  27.             //Дальше ещё не написано, застрял на транзакции
  28.         }
Пытаюсь добраться до точек COGO через COM
 if (oAcadApp==null) oAcadApp=GetObject(,"Autocad.Application");//Вот здесь GetObject из листинга VB, как это в C# исправить?
« Последнее редактирование: 21-04-2015, 20:01:36 от Stoner »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
1. Отформатируй код по правилам как у меня написано в подписи.
2. Есть online преобразование VB.NET -> C# http://www.developerfusion.com/tools/convert/vb-to-csharp/
Попробуй его.
3. Думаю что подойдёт:
Код - C# [Выбрать]
  1. oAcadApp = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Метод, помеченный атрибутом CommandMethod, должен быть типа void и без параметров:
Код - C# [Выбрать]
  1. [CommandMethod("GetCoordCOGObyNum")]
  2. public void GetCoordCOGObyNum()
  3. {
  4. ...