Class..ctor () не найден в структуре после переноса из Delphi Prism в C # - PullRequest
0 голосов
/ 19 сентября 2019

Я перенес DLL из Delphi Prism (версия Delphi, .Net с Pascal-подобным синтаксисом) на C #.Когда моя DLL на основе C # загружается из сборки приложения в Delphi, возникает ошибка:

Uncaught Exception: System.MissingMethodException: Method not found: "Void ClimateControl.TClimateData..ctor()".
   in DriverBoardTest.ConsoleApp.Main(String[] args)

Структура данных TClimateData раньше объявлялась в Delphi-коде следующим образом:

TClimateData = public record
  public
    tempSensor:Double;
    tempHeater:Single;
    humidity:Double;
  end;

В C # он был преобразован в структуру:

public struct TClimateData
  {
        //public TClimateData() { }
        public double tempSensor;
        public float tempHeater;
        public double humidity;
  }

Декомпилятор (JetBrain dotPeak) добавил конструктор с пустой реализацией, но, очевидно, он не разрешен в C #, поэтому я деактивировал его.

Если я пытаюсь преобразовать структуру в класс с конструктором по умолчанию, я получаю еще одну ошибку:

Uncaught Exception : System.TypeLoadException: The type "ClimateControl.TClimateData" 
in the Assembly "SHT3xTest, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null" 
can't be loaded due to a type conflict 
in DriverBoardTest.ConsoleApp.Main(String[] args)

Я думаю, DLL на основе Delphi вызывает конструктор записи по умолчанию, который не являетсядоступно при компиляции с C #.Могу ли я это исправить?

...