Возврат сложных типов (классы, массивы классов) с использованием JCL и CLR
Сначала я сослался на этот вопрос, чтобы начать работу, но столкнулся с препятствиями при попытке вернуть класс или массив класса, используя сборку.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 ответ
Решение
Вы не можете, по крайней мере, не так. Delphi и.NET имеют разные объектные модели и разные типы строк, которые не совместимы друг с другом. Если вы хотите передавать объекты между модулями.NET и Delphi, возможно, лучше всего использовать COM.