Возврат сложных типов (классы, массивы классов) с использованием JCL и CLR - PullRequest
2 голосов
/ 12 ноября 2010

Я впервые сослался на этот вопрос , чтобы начать, но достиг контрольно-пропускного пункта при попытке вернуть массив Class или класса с использованием сборки .NETв Delphi XE.

Рассмотрим следующее:

//C#
[ComVisible(true)]
public class Person {
    public int Id;
    public string Name;
}

public class SomeClass 
{
    public SomeClass() {}        

    public Person[] GetPersons()
    {
        //some code
    }
}

//Delphi
type TPerson = class
  Id : Integer;
  Name : string;
end;

Как понять данные, возвращаемые из GetPersons(), которые я могу назначить для array of TPerson в Delphi?

1 Ответ

2 голосов
/ 16 ноября 2010

Вы не можете, по крайней мере, так.Delphi и .NET имеют разные объектные модели и разные типы строк, которые не совместимы друг с другом.Если вы хотите передавать объекты между модулями .NET и Delphi, возможно, лучше всего использовать COM.

...