因为一定要用到.net的反射功能,所以不得已用C#做了个COM,用以收集程序集的类方法和属性的描述.然后生成一个结构集合,最后以object 的形式传出.在delphi里面收olevariant的变量接收.但是总是报异常.以下有两种选择,分别该如何在DELPHI中获取呢?1 以结构的形式封到object中传出值C# 
//结构
public struct reval
{
  public string classname;
  public string methodname;
  public string propertyname;
}
//主体函数
public object main()
{
  reval aa = new reval();
  return aa;
}
2 简单一点,以数组的形式传出值c#public object main()
{
  ArrayList al = new ArrayList();
  al.Add("one");  return al;
}
------------------------------------------以上两种例子,其实就是想了解C#传出较复杂的数据类型,DELPHI如何去实现获取?1 在DELPHI中能实现C#的结构吗?还是C#的结构要在COM中以接口的形式发布出来?
2 DELPHI中的Array[0..9] of string 与C# ArrayList 所存地址可以转换访问吗?总之一个字, 烦.就请高手指点啦.

解决方案 »

  1.   

    1:在DELPHI中要定义一个与C#中一样的结构来接收就可以了
      如:
      reval=Record
         classname:string;
         methodname:string;
         propertyname:string;
      end;
    2:C#的ArrayList可以用Delphi的TList来接收应该是这样的,没试过,你试一下吧
      

  2.   

    多谢 Cassava(车超)  不过这两种我都试了,我当时的第一想法就是这样的,拿上手就是record,不过无情的给了我一个异常,arraylist我用Tstringlist,varArrayCreate都试过了.不行.
      

  3.   

    cjianwen(空前) 能说清楚点吗?