从COM对象调用方法

时间:2013-03-15 21:34:58

标签: c# .net com

第三天试着解决我的问题,但没有运气(( 下面是我的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方法?请帮忙((

2 个答案:

答案 0 :(得分:1)

要调用该方法,您需要将其转换为定义方法的IFunnyWorld3类型。

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

答案 1 :(得分:0)

铸造怎么样?如果您获得了对object的引用,那么您应该能够投射它:

IFunnyWorld3 fw3 = (IFunnyWorld3) comObj;

然后调用你的方法。像

fw3.SayHello("Hello, World");