2013-03-15 137 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");