2013-03-15 41 views
0

第三天试图解决我的问题,但没有运气(( 下面是我FunnyWorld3.cs文件。我注册了这个组件,这里是没有问题的调用方法

[assembly: AssemblyKeyFile("Keys.snk")] 
public interface IFunnyWorld3 
{ 
    void SayHello(String param); 
}; 

[ 
    ClassInterface(ClassInterfaceType.AutoDual) 
] 

public class FunnyWorld3 : IFunnyWorld3 
{ 
    public void SayHello(String param) 
    { 
     MessageBox.Show(param, "FunnyWorld::SayHello metnod was invoked"); 
    } 
}; 

然后我创建的C#项目,代码:??

Type comType = Type.GetTypeFromProgID("FunnyWorld3", true); 
object comObj = Activator.CreateInstance(comType) 

接下来会发生什么我如何可以调用SayHello的方法在我的项目请帮忙((

回答

1

要叫你需要将其转换为方法定义方法的类型。

IFunnyWorld3 fw = (IFunnyWorld3)comObj; 
fw.SayHello("message"); 
+0

谢谢,我试过了,但“类型或名称空间名称IFunnyWorld3找不到” – hereWeTrust 2013-03-17 08:34:08

0

如何铸造?如果你获得了object参考,那么你应该能够投它:

IFunnyWorld3 fw3 = (IFunnyWorld3) comObj; 

然后事后打电话给你的方法。像

fw3.SayHello("Hello, World");