1. Use Type.GetTypeFromGuid or Type.GetTypeFromProgId
2. Use Activator.CreateInstance to create object.
3. Use Reflection (InvokeMember) call disp method.

解决方案 »

  1.   

    up,阿,你的意思是说象c++那样晚绑定到底怎么实现的吗
      

  2.   

    不用up了, qqchen79(知秋一叶)的方法是对的。你照着做吧。
      

  3.   

    c#不支持隐式的后期绑定,你可以用qqchen79(知秋一叶) 的方法做。不过我不建议这样,太麻烦。最好时定义以公用基类,用基类[baseclass]指针(或interface)指向欣生成的类句柄,如
    ty=Type.GetType("MyFrameWork.Form1, MyFrameWork",true );
    Form ff=(Form)Activator.CreateInstance(ty);
    ff.Show();
      

  4.   

    qqchen79(知秋一叶)说的没错,但没说清楚和详细。
    对COM对象晚联编分两个步骤:
    1)必须使用Type.GetTypeFromProgID()方法获取对代表COM对象类型的Type对象的引用
    2)必须给Activator.CreateInstance()方法传递Type引用,以实际地创建Com对象。
    如代码:
     Type objMyType=Type.GetTypeFromProgID("MyCom.My");
     object objMy=Activator.CreateInstance(objMyType);调用COM方法,必须使用Type对象的InvokeMember()方法访问Com对象的功能。其5个参数如下:
    1)要调用的成员的名称
    2)BindingFlag枚举的值,表明调用的是属性还是方法等
    3)对联编对象的引用。通常传递一个null值
    4)对Com对象本身的引用
    5)希望给Com方法发送的是输入参数的数组
      

  5.   

    本来就是反射嘛。:)
    不过我还是要说,除非极万不得已(如:无法将类型库文件用于第三方组件或者可能不允许将一个非常复杂的COM组件用于TlbImp等),不要使用晚联编。
      

  6.   

    看看MSDN的.NET框架开发者指南里的“动态加载和使用类型”,讲得很详细的。