Как преобразовать несколько строк кода из vb.net в его эквивалент C # - PullRequest
0 голосов
/ 19 июня 2019

Мне поручено преобразовать какой-то старый код VB.net в C #. Медленно разбирался с ошибками - от 100 до 10. Первый код vb.net, который необходимо преобразовать:

Try
    My.Computer.FileSystem.CopyFile(strFile, strExportPath + "\" + strFileName(0), FileIO.UIOption.OnlyErrorDialogs, FileIO.UICancelOption.DoNothing)
    intFilesCopied += 1

    My.Computer.FileSystem.MoveFile(strFile, _strPath + "Data\Backup\" + strFileName(0), FileIO.UIOption.OnlyErrorDialogs, FileIO.UICancelOption.DoNothing)
    intFilesMoved += 1

Catch ex As Exception
    My.Application.Log.WriteException(ex, TraceEventType.Error, "ExportDataToolStripMenuItem_Click")

End Try

Моя попытка C # выглядит следующим образом:

try
{
    File.Copy(strFile, strExportPath + @"\" + strFileName[0], UIOption.OnlyErrorDialogs,
    FileIO.UICancelOption.DoNothing);
    intFilesCopied += 1;

    File.Move(strFile, _strPath + @"Data\Backup\" + strFileName[0],
    UIOption.OnlyErrorDialogs, UICancelOption.DoNothing);
    intFilesMoved += 1;
}
catch (Exception ex)
{
    Application.Log.WriteException(ex, TraceEventType.Error, "ExportDataToolStripMenuItem_Click");
}

Следующий фрагмент VB.NET - это часть catch предложений try-catch.

My.Application.Log.WriteException(ex, TraceEventType.Error, "Could not write record to data file " + _strActiveFileName + Environment.NewLine + "Record Data: " + strRecordText);

И для моей жизни не могу найти C # -эквивалента для этого.

Я пытался добавить пространство имен Microsoft.VisualBasic dll / reference / name, но это тоже не работает. Пробовал гуглить C # -эквивалент, но ничего не смог найти.

1 Ответ

1 голос
/ 19 июня 2019

Следующий фрагмент VB.NET - это часть try-catch статьи.

My.Application.Log.WriteException (например, TraceEventType.Error, "Не удалось записать запись в файл данных "+ _strActiveFileName + Environment.NewLine + "Запись данных:" + strRecordText);

И для моей жизни не могу найти C # -эквивалента для этого.

Это может быть преобразовано (со ссылкой на Microsoft.VisualBasic.dll ):

 Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase();

тогда:

 MyApplication.Log.WriteException(ex, TraceEventType.Error, "ExportDataToolStripMenuItem_Click");

И вы можете проверить файл журнала с помощью:

System.Windows.Forms.MessageBox.Show(MyApplication.Log.DefaultFileLogWriter.FullLogFileName);

(только что протестировано на Windows 10)

...